Change/set 在 Omnet++ 中模拟时间节点的新位置

Change/set new position of a node during the simulation time in Omnet++

我有一个当前具有 BonnMotionMobility 的模拟,我可以在其中告知节点在模拟期间的位置。但我希望,由于某些事件,一些节点在模拟过程中将它们的位置更改为另一个位置。 "set a new position" 是否有任何函数可以在 运行 模拟(某些反应性移动模型)中间的某处调用?

我希望我对我的问题已经足够清楚了。 谢谢你的回答。

不是那样的。如果你想实现你自己的逻辑节点应该如何移动,你应该实现你自己的移动模型(从 MovingMobilityBase 或适当的东西派生)。您应该将所有需要的信息传递给移动模块,即在那里发送事件或信号,并且应该在移动模块内部处理移动逻辑。在当前架构中,确定模块的位置是移动模块的唯一职责。

您的建议是(通过寻找类似 setCoordinates() 的函数)您希望将该责任转移到其他不相关的模块中,这通常不是一个好的决定。

简而言之,您应该编写自己的移动模块来执行此操作。显然,您可以编写一个具有 setCoordinates() 函数的简单模型,并从您的其他代码中调用它。