在 Omnet++ 中获取实时统计信息

Getting real time statistics in Omnet++

在:

https://docs.omnetpp.org/tutorials/tictoc/part5/

https://doc.omnetpp.org/omnetpp/manual/#sec:simple-modules:declaring-statistics

显示了如何在模拟后处理网络统计信息。

是否可以动态获取网络参数?

TL;DR:使用信号(不是统计数据)并在这些信号上连接您自己的简单模块,并计算该模块中所需的统计数据。

您无法在您的代码中访问 @statistics 的值,这是有原因的,因为这将是一个 反模式 。基于 NED 的统计数据作为一种方法被引入,可以在不 修改模型行为和代码的情况下 添加计算和测量到您的模型。这意味着统计数据不被视为模型的一部分,而是被视为配置。更改统计数据(即决定要测量其他内容)永远不会改变模型的行为。这就是为什么给定统计的实际值不会(轻易地)暴露给 C++ 代码的原因。你可以把它们挖出来,但是非常不鼓励。

现在,这并不意味着您想要实现的目标不合法,但实际的统计数据收集必须是您模型的组成部分。 IE。你不应该以使用内置统计为目标,而是创建一个 explicit 统计收集子模块,它应该连接必要的信号 (https://doc.omnetpp.org/omnetpp/manual/#sec:simple-modules:subscribing-to-signals) 并进行实际的统计计算你需要在它的 C++ 代码中。之后,其他模块可以自由访问此信息并据此做出决策。