omn​​et如何初始化模块和模型?

How omnet initialize modules and model?

我阅读了手册,在手册中使用伪代码描述了第一个模拟步骤,当模拟开始是从系统模块到子模块时 "network initialization"。在我的模拟示例中,有 "simulation.ned" 用于定义一些模拟变量,package.ned 用于定义网络。

问题是:

感谢

在模拟准备期间(在处理第一个事件之前)执行以下步骤:

  1. 模拟环境查看omnetpp.ini并检查network的名称,例如:

    [General]
    network = ARPTest
    
  2. 模拟环境扫描NED个文件并查找包含:

    的文件
    network ARPTest {
     // ...
    }
    
  3. 模拟环境调用initialize() 用于此网络中提到的所有子模块。有the important rule:

A compound module's initialize() function runs before that of its submodules.


还值得记住的是,在 OMNeT++ 中有机会使用 multi stage initialization。当一个子模块没有来自另一个子模块的一些信息而无法初始化时,它很有用,例如:路由子模块需要主机接口的地址来初始化。