霜之哀伤de专栏

拿什么拯救你,我的NS2!

如何在aodv协议中访问node的各项属性

如何在aodv协议中访问node的各项属性(例如,X_, Y_, speed_)

aodv协议里面没有出现当前节点,如要访问与之对应的节点的信息,则添加一个节点并与AODV对应的Agent绑定。
1、在aodv.h中添加如下代码
    protected:
        MobileNode *node_;        // My node
2、修改aodv.cc中的command函数如
int
AODV::command(int argc, const char*const* argv) {
    ……        //不变
    else if(argc == 3) {
    ……        //不变
    if(strcmp(argv[1], "node") == 0 ) {
         node_ = (MobileNode*) TclObject::lookup(argv[2]);
        if(node_ == 0) return TCL_ERROR;
        return TCL_OK;
    }
    ……        //不变
}
3、修改../tcl/lib/ns-lib.tcl中的create-aodv-agent如下(重要!!!)
Simulator instproc create-fnaodv-agent { node } {
    set ragent [new Agent/AODV [$node node-addr]]
    set addr [$node node-addr]
    $ragent node $node
    $node set ragent_ $ragent
        $self at 0.0 "$ragent start"
        return $ragent
}

node_就是当前AODV Agent所在的节点,使用例如
node_->dX()
node_->dX()
node_->speed()
等的命令就可以得到节点的坐标,速度等参数,具体都能获得哪些数据,可以参考../common/mobilenode.h
 
阅读更多
文章标签: command tcl
想对作者说点什么? 我来说一句

aodv的matlab程序

2014年09月16日 1KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭