NS2中仿真ZigBee协议加入能量模型之后节点颜色、标签不能改变

最近再NS2中仿真ZigBee协议时,再加入能量模型之后,发现所有的节点都变成绿色的,程序中对节点颜色的改变都不能起作用了,同时对节点添加标签时也不能加上去。在仔细观察了其源代码之后发现在P802_15_4mac.cc文件中的第919行void Mac802_15_4::recv(Packet *p, Handler *h)函数中有如下两行语句:

if (!Nam802_15_4::emStatus)
Nam802_15_4::emStatus = (netif_->node()->energy_model()?true:false);

正是这两句将emStatus赋值为false,使得在改变节点颜色时运行到文件p802_15_4nam.cc的321行:void Nam802_15_4::changeNodeColor(double atTime,const char *newColor,bool save)函数内的if (!Nam_Status) return;(326行)时直接返回,从而使对节点颜色的更改操作失败。同样对于节点其他属性的操作也是因为emStatus被赋值为了false而导致更改失败。

因此想要在能量模型中仍然能进行节点属性的更改,只需将前面说的P802_15_4mac.cc文件中的第919行void Mac802_15_4::recv(Packet *p, Handler *h)函数中如下两行语句注释掉:

/*

if (!Nam802_15_4::emStatus)
Nam802_15_4::emStatus = (netif_->node()->energy_model()?true:false);

*/

并保证在tcl文件中加入了Mac/802_15_4 wpanNam namStatus on,即将emStatus初值赋为true就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值