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

How can I know when or why the value of stage changes from 0 to 1 in the veins example?

当我运行 veins 5.0 中的示例时,我知道Multi stage 可以通过numInitStages() 函数来定义。但我不知道 BaseModule.cc 文件中阶段的值何时或为何从 0 变为 1。

void BaseModule::initialize(int stage)

仿真环境负责在初始化时调用后续阶段。
例如,假设一个人为一个模块定义:

int numInitStages() const { return 3; }

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

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

重要的是:模拟环境为每个模块调用initialize(0),然后为每个[=35]调用initialize(1) =] 模块 numInitStages() returns 2 或更多,然后它为 每个 模块调用 initialize(2) numInitStages() returns 3个或更多等
多亏了这一点,我们确信 initialize(1) 将在 调用之后被调用 initialize(0) 所有 模块中。因此,我们可以决定 - 例如 - 在 stage=1 中分配一个地址,并在 stage=2.

中打开使用该地址的套接字

参考:OMNeT++ Simulation Manual