2017-04-27 65 views
0

我需要建議或參考如何開發模擬與多個節點,在24小時的網絡中存在特定的存在模式。據我所知,模擬具有自己的時間表和運行時間,它跟隨並執行事件列表。在這個例子中,每個點頭都有自己的時間表。我相信網上有一些例子,但我無法找到它,所以任何幫助是值得歡迎的。 Thx節點的動態性

回答

1

您引用的行爲通常稱爲晝夜行爲或更一般的流失。這可能有助於未來的研究主題。

來模擬你的節點是可用還是不可用在某個時間點上,你可以使用一個布爾值,表示如果你的節點目前正在積極在模擬論證參加:

bool isActive = true; 

可以再加入if語句在你的模塊handleMessage()方法,如果你的模塊是活動的,將只回復短信:

void myModule::handleMessage(cMessage *msg) 
{ 
    if(isActive){ 
     // handle your messages 
    } else { 
     // maybe send a timeout message indicating that your module is inactive 
    } 
} 

關於你提到的節點是速效的時候,我建議使用SelfMessages,你可以安排如下:

scheduleAt(simTimeAtWhichStateChanges, myChurnMsg); 

handleMessage()然後可以處理該消息,改變狀態,並重新安排的消息狀態的下一個變化:

void myModule::handleMessage(cMessage *msg) 
{ 
    if(isActive){ 
     if (msg->isSelfMessage()){ 
      isActive = !isActive; 
      scheduleAt(simTimeAtWhichStateChanges, myChurnMsg); 
     } 
     // handle your messages 
    } else { 
     // maybe send a timeout message indicating that your module is inactive 
    } 
} 

這應該給你你如何能實現一個粗略的概述你的模擬中的晝夜行爲。

+0

非常感謝你 – explorer

+0

如果答案幫助你解決問題,你會介意接受嗎? – xTikka

+0

我看不到那個選項,該怎麼做 – explorer