0
我需要建議或參考如何開發模擬與多個節點,在24小時的網絡中存在特定的存在模式。據我所知,模擬具有自己的時間表和運行時間,它跟隨並執行事件列表。在這個例子中,每個點頭都有自己的時間表。我相信網上有一些例子,但我無法找到它,所以任何幫助是值得歡迎的。 Thx節點的動態性
我需要建議或參考如何開發模擬與多個節點,在24小時的網絡中存在特定的存在模式。據我所知,模擬具有自己的時間表和運行時間,它跟隨並執行事件列表。在這個例子中,每個點頭都有自己的時間表。我相信網上有一些例子,但我無法找到它,所以任何幫助是值得歡迎的。 Thx節點的動態性
您引用的行爲通常稱爲晝夜行爲或更一般的流失。這可能有助於未來的研究主題。
來模擬你的節點是可用還是不可用在某個時間點上,你可以使用一個布爾值,表示如果你的節點目前正在積極在模擬論證參加:
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
}
}
這應該給你你如何能實現一個粗略的概述你的模擬中的晝夜行爲。
非常感謝你 – explorer
如果答案幫助你解決問題,你會介意接受嗎? – xTikka
我看不到那個選項,該怎麼做 – explorer