module - omnet 如何初始化模块和模型?
问题描述
我阅读了手册,手册中使用伪代码描述了第一个模拟步骤,当模拟开始是从系统模块到子模块的“网络初始化”。在我的模拟示例中,有“simulation.ned”,它用于定义一些模拟变量和 package.ned,其中我定义了网络。
问题是:
当模拟开始时,omnet 如何初始化模块(可能会寻找所有 *.ned 文件以创建完整的网络)?
创建模块时,他是等待生成所有子模块还是立即应用配置(initialize() 方法)或等待创建所有模块然后继续配置?
谢谢
解决方案
在模拟准备期间(以及在处理第一个事件之前)执行以下步骤:
模拟环境查看
omnetpp.ini
并检查 的名称network
,例如:[General] network = ARPTest
模拟环境扫描
NED
文件并查找包含以下内容的文件:network ARPTest { // ... }
模拟环境需要
initialize()
该网络中提到的所有子模块。有一条重要的规则:
复合模块的
initialize()
功能在其子模块之前运行。
还值得记住的是,
OMNeT++
有机会使用多阶段初始化。当一个子模块在没有来自另一个子模块的一些信息的情况下无法初始化时很有用,例如:路由子模块需要主机接口的地址来初始化。
推荐阅读
- javascript - 删除数组上的一些元素后如何再次使用数组
- surveymonkey - 我可以使用 Surveymonkey 自动播放声音吗?
- python - 需要使用 boto3 在现有子网中启动 ec2
- java - 尝试在 Spring 中将记录存储在 excel 文件中
- java - 在 xml 解析期间不会将 & 转换为 & ?什么是最好的解决方案?
- content-management-system - 使用无头 cms 时,我在哪里保存我的 html/css/js 代码?
- arrays - 如何在末尾添加扩展名
- javascript - 在 React 中如何将标准 html 作为组件传递?
- machine-learning - 这是我的训练和验证准确性代码有问题吗?还是数据?
- artificial-intelligence - 无人机SDK支持自由飞行控制