如何改变Inet 4.2中无线节点的传输功率?应更改Inet的哪些类和函数代码?例如,我希望在模拟时间内动态增加0.1mW /秒的传输功率,如下所示:
谢谢
发布于 2021-11-08 10:50:32
当然,你可以动态地改变你想要的传输功率。
在你的.CC里
首先,找到您的发射机并正确地介绍它的名称,得到它的指针如下:
cModule * transmitter = getParentModule()->getSubmodule("ieee80211Nic2")->getSubmodule("radio")->getSubmodule("transmitter");
flatTransmitter = const_cast<FlatTransmitterBase *>(check_and_cast<const FlatTransmitterBase *>(transmitter));(根据发送器的放置位置移除或添加getParentModule )
从dB到W的功率传输转换:
pt_w = pow(10.0, pt_dbm/10)/1000;使用FlatTransmitter对象更改传输功率:
flatTransmitter->setPower(W(pt_w));在你的.H里
double pt_dbm;
double pt_w;不要忘记在.cc和.h中都包含FlatTransmitterBase.h头:
#include "inet/physicallayer/base/packetlevel/FlatTransmitterBase.h"请注意,如果您的OMNeT++版本不同,则此过程可能有所不同。
https://stackoverflow.com/questions/69039949
复制相似问题