我在OMNET++
Framework 4.0中使用INET
。如何在自定义移动模块中创建一个计时器,使其每秒触发一次,以便每次触发计时器事件时都可以移动AdhocHost
?
答案 0 :(得分:2)
在OMNeT++
self-messages中是计时器。
为了实现您的目标,您应该创建一个cMessage
对象,使用scheduleAt()
对其进行计划,然后在handleMessage()
中对其进行每次到期时重新计划。
例如:
// somewhere in simple module class declaration (*.h)
simtime_t timerInterval;
cMessage * timer;
// in initialize()
timerInterval = 1.0; // one second
timer = new cMessage("one second timer");
scheduleAt(simTime() + timerInterval, timer);
// in handleMessage()
if (msg == timer) {
// do something
scheduleAt(simTime() + timerInterval, timer); // rescheduling
}
// in finish()
cancelAndDelete(timer);
OMNeT++
样本中有很多使用自我消息的示例,尤其是在Tictoc中。