我使用这个模块的层次结构:
Node: {udpApp[0]<->udp<->networkLayer->wlan[0]} and wlan[0]: {CNPCBeacon<->mac<->radio}
我给的一些初始参数ini
文件udpApp
为:
**.host*.numUdpApps = 2
**.host*.udpApp[0].typename = "UDPBasicApp"
**.host*.udpApp[0].chooseDestAddrMode = "perBurst"
**.host*.udpApp[0].destAddresses = "gw1"
**.host*.udpApp[0].startTime = 1.32s
**.host*.udpApp[0].stopTime = 1.48s
但在运行时我想改变的startTime
和stopTime
为udpAPP[0]
通过CNPCBeacon
模块。 因此,我改变了CNPCBeacon.cc
如下: -
cModule* parentmod = getParentModule();
cModule* grantParentmod = parentmod->getParentModule();
cModule* udpmod;
for (cSubModIterator iter(*grantParentmod); !iter.end(); iter++)
{
//EV<<"get the modulde "<< iter()->getFullName()<<endl;
if (strcmp(iter()->getFullName(), "udpApp[0]") == 0)
{
udpmod = iter();
break;
}
}
cPar& startTime = udpmod->par("startTime");
cPar& stopTime = udpmod->par("stopTime");
而我能够成功接收的值startTime
和stopTime
。 但是我想电流模块,从而导致错误通过下面的代码中来改变这些值:
udpmod->par("startTime").setDoubleValue(4.2);
任何人都可以请建议我的方式在运行时改变它。