微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在静脉示例中,我如何知道stage的值何时或为什么从0变为1?

如何解决在静脉示例中,我如何知道stage的值何时或为什么从0变为1?

当我在静脉5.0中运行示例时,我知道可以通过numInitStages()函数定义多阶段。但是我不知道BaseModule.cc文件中的阶段值何时或为什么从0变为1。

void BaseModule::initialize(int stage)

解决方法

模拟环境负责在初始化期间调用后续阶段。
例如,假设为一个模块定义了一个

int numInitStages() const { return 3; }

模拟开始时,模拟环境将调用:

initialize(0); 
initialize(1); 
initialize(2); 

重要的是:模拟环境为每个模块调用initialize(0),然后为 every 模块的{{1} }返回2或更多,然后为每个模块的initialize(1)返回3或更多的调用numInitStages()
因此,我们确保在调用后initialize(2)被称为 {em> all
模块中的numInitStages()。因此,例如,我们可能决定在stage = 1中分配一个地址,并在stage = 2中打开使用该地址的套接字。

参考:OMNeT++ Simulation Manual

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。