C++ 推动C++;函数将值返回到NS2中的OTcl
使用NS2,我尝试在给定时间提取节点能量,并使用该值执行其他计算。通过互联网,这是一件很平常的事情。我发现执行这个任务的方法是在路由协议.cc和.h文件中创建C++函数。使用DumbAgent路由协议,我向dumb-agent.cc添加了以下代码:C++ 推动C++;函数将值返回到NS2中的OTcl,c++,tcl,ns2,C++,Tcl,Ns2,使用NS2,我尝试在给定时间提取节点能量,并使用该值执行其他计算。通过互联网,这是一件很平常的事情。我发现执行这个任务的方法是在路由协议.cc和.h文件中创建C++函数。使用DumbAgent路由协议,我向dumb-agent.cc添加了以下代码: //将能量变量添加到构造函数 DumbAgent::DumbAgent():代理(PT\u PING){ 能量=0.0; } ... //创建函数以检索能量 双代理::获取能量(nsaddr\U t addr) { Node*thisnode=Nod
//将能量变量添加到构造函数
DumbAgent::DumbAgent():代理(PT\u PING){
能量=0.0;
}
...
//创建函数以检索能量
双代理::获取能量(nsaddr\U t addr)
{
Node*thisnode=Node::按地址获取节点(addr);
双能量;
能量=此节点->能量\模型()->能量();
返回能量;
}
在.h头文件中:
类代理:公共代理{
公众:
DumbAgent();
虚拟int命令(int argc,const char*const*argv);
虚拟void recv(数据包*p,处理程序*h=0);
无效跟踪(字符*fmt,…);
//由Sam添加
虚拟双获取能量(nsaddr\U t addr);
受保护的:
Trace*tracetarget;
端口分类器*dmux;
//由Sam添加
双能量;
节点*此节点;
};
使用make
可以成功编译所有内容。但是,如何从OTcl脚本访问此值?我预计会出现以下情况:
$ns at 5.0 get_energy($node(1))
我是否需要在Tcl脚本中的节点上执行某种附加/连接操作?如何从OTCL?获取C++函数值?
谢谢我希望
$ns在5.0$node(1)获得能量???
其中?
是某种东西(不知道是什么!),成为addr
参数…提示:1。。。。2.