如何使用SetDoubleValue()在Omnet 中更改参数运行时



我正在模拟一个带有2个无线主机和1个访问点的网络。在运行时,节点通过访问模块和使用setDoubleValue(0(来设置访问点的发射功率为零(将其关闭(。但是新价值永远不会生效。AP的味精继续到达节点。我在这里做错了什么?我想在模拟运行时关闭访问点。请帮助。

cSimulation *currentSimulation = getSimulation();
cModule *tx = nullptr;
tx=currentSimulation->getModuleByPath("agranet.ap.wlan[0].radio.transmitter");
tx->par("power").setDoubleValue(0);
//cPar& po = tx->par("power");
//po.setDoubleValue(0);

我想在模拟运行时关闭访问点。

您无法在初始化之后更改功率参数,因为它是一个非挥发性参数,因此其值在初始化时读取并随后被缓存。您可以仅操纵已经为此准备C 代码的挥发性NED参数。

另一方面,您要实现的目标是在特定时间禁用节点,这就是ScenaiManager的目的:

https://inet.omnetpp.org/docs/users-guide/ch-scenario-scripting.html

最新更新