首页 > 解决方案 > 如何在 Inet 4.2 中更改传输功率

问题描述

Inet 4.2中如何改变无线节点的传输功率?Inet 的哪些类和函数代码应该更改?比如我想在仿真时间内动态改变发射功率每秒增加0.1mW,如下:

谢谢

标签: omnet++

解决方案


当然,您可以根据需要动态改变传输功率。

在您的 .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++ 版本不同,此过程可能会有所不同。


推荐阅读