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

时间:2019-05-19 15:03:54

标签: 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);

我想在模拟运行时关闭接入点。

1 个答案:

答案 0 :(得分:0)

您不能在初始化后更改电源参数,因为它是非易失性参数,因此在初始化时将读取其值,然后将其缓存。您只能在已经为此准备了C ++代码的情况下操作易失性NED参数。

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

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