在静脉示例中,我如何知道 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.
中打开使用该地址的套接字
当我运行 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.