我阅读了手册,手册中使用伪代码描述了第一个模拟步骤,当模拟开始是从系统模块到子模块的“网络初始化”。在我的模拟示例中,有“simulation.ned”,它用于定义一些模拟变量和 package.ned,其中我定义了网络。
问题是:
当模拟开始时,omnet 如何初始化模块(可能会寻找所有 *.ned 文件以创建完整的网络)?
创建模块时,他是等待生成所有子模块还是立即应用配置(initialize() 方法)或等待创建所有模块然后继续配置?
谢谢
我阅读了手册,手册中使用伪代码描述了第一个模拟步骤,当模拟开始是从系统模块到子模块的“网络初始化”。在我的模拟示例中,有“simulation.ned”,它用于定义一些模拟变量和 package.ned,其中我定义了网络。
问题是:
当模拟开始时,omnet 如何初始化模块(可能会寻找所有 *.ned 文件以创建完整的网络)?
创建模块时,他是等待生成所有子模块还是立即应用配置(initialize() 方法)或等待创建所有模块然后继续配置?
谢谢
在模拟准备期间(以及在处理第一个事件之前)执行以下步骤:
模拟环境查看omnetpp.ini
并检查 的名称network
,例如:
[General]
network = ARPTest
模拟环境扫描NED
文件并查找包含以下内容的文件:
network ARPTest {
// ...
}
模拟环境需要initialize()
该网络中提到的所有子模块。有一条重要的规则:
复合模块的
initialize()
功能在其子模块之前运行。
OMNeT++
有机会使用多阶段初始化。当一个子模块在没有来自另一个子模块的一些信息的情况下无法初始化时很有用,例如:路由子模块需要主机接口的地址来初始化。