simulation - 在 Omnet++ 中获取实时统计数据
问题描述
在:
https://docs.omnetpp.org/tutorials/tictoc/part5/
和
https://doc.omnetpp.org/omnetpp/manual/#sec:simple-modules:declaring-statistics
它显示了如何在模拟后处理网络统计信息。
是否可以动态获取网络参数?
解决方案
TL;DR:使用信号(不是统计数据)并将您自己的简单模块连接到这些信号上,并在该模块中计算所需的统计数据。
您无法访问@statistics
代码中的值,这是有原因的,因为这将是一种反模式。基于 NED 的统计数据被引入作为一种在不修改模型行为和代码的情况下向模型添加计算和测量的方法。这意味着统计数据不被视为模型的一部分,而是被视为配置。更改统计数据(即决定您要测量其他内容)永远不会改变模型的行为。这就是为什么给定统计数据的实际值不会(轻易地)暴露给 C++ 代码的原因。你可以把它们挖出来,但非常不鼓励。
现在,这并不意味着您想要实现的目标是不合法的,但实际的统计数据收集必须是您模型的一个组成部分。即你不应该以使用内置统计为目标,而是创建一个明确的统计收集子模块,它应该连接必要的信号(https://doc.omnetpp.org/omnetpp/manual/#sec:simple-modules:订阅信号)并在其 C++ 代码中执行您需要的实际统计计算。之后,其他模块可以自由访问这些信息并据此做出决策。
推荐阅读
- javascript - 使用 JavaScript 提交表单
- python - 如何从 Python 列表中删除多个(键、值)条目 - 有序字典
- javascript - Konva:获取旋转矩形的角坐标
- android - Android 中无传感器设置的屏幕方向如何确定?
- django - django 究竟如何使用查询集“逃避”sql 注入?
- xamarin.forms - Add Native View in Xamarin.Forms
- php - PHP: Array Convert comma separated string to int
- java - Recursive Methods in Collections
- c# - ASP.NET Core MVC - 以图形表示形式显示工业流程工作流的方法
- python - flask-sqlalchemy 调整从 DB 建模的数据?