如何在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-aodv-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