OMNET++:如何在 INET 4.0 中手动设置节点位置?

OMNET++: How to set node position manually in INET 4.0?

我正在使用 INET Framework 4.0 和 OMNET++。有没有办法通过节点子模块(在我的例子中是 Ieee80211MgmtAdhoc 模块)的 c++ 文件手动将节点的位置更改为我想要的自定义位置?

从 C++ 代码指定节点位置正是移动模块所做的。所以简短的回答是,是的。通过派生自适合您需要的基本移动模块来实现您自己的移动模块,然后将该模块安装到您的主机中。

请注意,您暗示的方法是一种移动模型,您可以在其中从其他模块(如 Ieee80211MgmtAdhoc)调用 setPosition() 函数,这是一种 反模式。确定节点位置的所有代码都应在其自己的(移动性)模块中提供。将定位逻辑混合到一个不相关的模块(管理模块)中违反了关注点分离原则,并且会妨碍您稍后尝试重用您的组件。

你应该反其道而行之。如果模块位置以某种方式取决于管理模块的状态(即,当您关联到某个接入点时,您希望移动到该接入点),那么移动模块应该进入管理模块(或任何需要的状态),然后以此计算位置