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