并非所有计时器都在执行

Not all timers are executing

在我的 OMNeT++ 5.5.1 网络中,我有两个节点(node[0] 和 node[1]),它们使用以下代码设置定时器。由 node[0] 和 node[1] 设置的计时器大部分时间都被触发,但是有一次由 node[0] 设置的计时器应该被触发但它没有触发。我确保节点 [1] 没有与节点 [0] 同时设置定时器,但定时器仍然没有触发。

代码如下:

MyWaitTimerMessage *myTimer = new MyWaitTimerMessage();
myTimer->setNodeId(myId);
double interval = 40.0 // In actual, the interval is calculating based on some criteria
scheduleAt(simTime() + interval, myTimer);

有谁知道它背后的问题是什么?以及哪些因素会导致定时器不触发?

另外,有没有办法在 OMNeT++ 中列出所有预定的定时器,以便我可以检查它是否存在于全局定时器列表中?

另外,timer之间是否会发生碰撞(其实我已经保证所有的timer都安排在不同的时间,至少相差毫秒数)。

提前谢谢你。 亚西尔

这个问题已经在 OMNeT++ google 组的帮助下解决了。

实际上,我的网络中的节点是移动的,因此计时器未调用的节点[0]实际上由于移动性而离开了网络。由于它不再在网络中,因此它的计时器没有调用。

下面是 OMNeT++ google 组 link 帮助我解决了这个问题的问题:

https://groups.google.com/g/omnetpp/c/jQFuyhLsoVk

此致,

亚西尔