OMNET++:如何创建每秒触发的计时器事件?

Far*_*han 2 inet omnet++

我正在使用OMNET++Framework INET4.0。如何在自定义移动模块中创建一个每秒触发的计时器,以便AdhocHost每次触发计时器事件时我都可以移动我的计时器?

Jer*_* D. 6

OMNeT++ 自我消息中有计时器。
为了实现您的目标,您应该创建一个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);
Run Code Online (Sandbox Code Playgroud)


顺便说一句:样本中有很多使用自我消息的例子OMNeT++,尤其是在 Tictoc 中。