首页 > 解决方案 > 如何在 OMNeT++5.5 中动态更改模块的参数?

问题描述

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

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

我想要做的是在 UDPBasicApp 模块中动态更改参数“转发”(在真假之间动态切换)。

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);

}

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

标签: omnet++inet

解决方案


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


推荐阅读