如何在 OMNeT++5.5 中动态更改模块的参数?

How to dynamically change a parameter of module from another one in OMNeT++5.5?

我在 omnetpp.ini 文件中写了一行代码,例如:

S.node[0..4].forwarding = false

我想做的是在UDPBasicApp模块中动态改变参数“forwarding”(动态切换true和false)

void UDPBasicApp::processForwardSwitch(){
 if (isSelfish) {
    //std::cout << host->par("forwarding").str() << std::endl;
    if (rand()%10<5)
        host->par("forwarding").setBoolValue(false);
    else
        host->par("forwarding").setBoolValue(true);
}
scheduleAt(simTime()+forwardSwitchInterval, forwardSwitchTimer);

}

我可以确认参数的值在仿真过程中确实发生了变化,但似乎对与此参数相关的模块没有影响,例如路由模块。 有人帮忙吗? 提前致谢!

通常在模块初始化期间只读取一次参数。