如何在 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);
}
我可以确认参数的值在仿真过程中确实发生了变化,但似乎对与此参数相关的模块没有影响,例如路由模块。
有人帮忙吗?
提前致谢!
通常在模块初始化期间只读取一次参数。
我在 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);
}
我可以确认参数的值在仿真过程中确实发生了变化,但似乎对与此参数相关的模块没有影响,例如路由模块。 有人帮忙吗? 提前致谢!
通常在模块初始化期间只读取一次参数。