如何通过代码与omnet++模拟进行交互?

How to interact with the omnet++ simulation via code?

我即将开始一个使用 OMNeT++ 的项目,但我还没有太多的经验。

据我了解,OMNeT++ 模拟是使用 omnet 框架提供的一组 API 的 C++ 代码。我想知道的是,有没有办法通过代码模仿 GUI 的行为?例如,有没有一种方法可以编写 C++ 二进制文件(其中也包含模拟代码)并能够从中控制模拟?例如。二进制等待来自键盘的输入,如果我写“step”它执行模拟的一步,如果我写“get state X”它输出某个模块 X 的状态,等等。

谢谢!

是的,可以用不同的方式驱动模拟内核。在所谓的 'Environment' 中,每个模拟都是 运行。 OMNeT++ 提供 Cmdenv(仅限控制台,non-interactive)和 Qtenv(基于 Qt 的交互式 GUI)。环境 API 定义明确 (cEnvir),因此没有什么能阻止您实施和注册自己的环境。有关示例代码,请参阅 samples/embeddingsamples/embedding2