NS2中模擬ZigBee協議加入能量模型之後節點顏色、標籤不能改變

來源:互聯網
上載者:User

最近再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就可以了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.