omnet++ - 如何在 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);
}
我可以确认参数的值在模拟过程中确实发生了变化,但似乎对与此参数相关的模块没有影响,例如路由模块。有人帮忙吗?提前致谢!
解决方案
通常参数在模块初始化期间只读取一次。
推荐阅读
- firebase - 带有firebase的flutter应用程序在热重载时崩溃
- templates - Consul-Termplate - 将变量插入“带秘密”证书调用的语法是什么
- arrays - Powershell:读取主机以选择数组索引
- html - 在 VS Code 中保存时关闭自动关闭的 HTML 标签?
- asynchronous - 如何测量 Julia 中函数的 @async 运行时?
- pact - 使用 SpringRestPactRunner 时出现 NoSuchMethodException
- function - 有人可以帮我把这个函数翻译成 sml 吗?
- javascript - 如何在 appcelerator Titanium 中将 WKWebView 与本地文件一起使用?
- kubernetes - Prometheus 查询获取整个集群的内存限制承诺
- bash - 从数组中挑选数字,看看它们是否是偶数并且小于 380