OMNET ++:如何获得无线信号功率?

时间:2018-07-16 15:24:14

标签: omnet++ rssi inet signal-strength

我正在使用新发布的INET 4.0框架用于OMNET ++,我想在无线主机(类型为AdhocHost)中获得接收到的信号强度值。我该怎么办?

1 个答案:

答案 0 :(得分:2)

INET 4.0.0中,模块接收的数据包包含多个tags。在其他标签之间有SignalPowerInd标签。根据{{​​3}}:

  

此指示指定在接收数据包期间检测到的平均模拟信号功率。   它可能存在于从物理层到应用程序的数据包中。

此标记存在于无线MAC层的数据包处理中,例如:

SignalTag.msg

应用层接收到的数据包也包含SignalPowerInd

enter image description here


可以使用标准API从任何层的接收到的无线电数据包中获取SignalPowerInd的值。例如,要在UdpBasicApp中获得它,应在UdpBasicApp.cc中添加:

#include "inet/physicallayer/common/packetlevel/SignalTag_m.h"
// ...

void UdpBasicApp::socketDataArrived(UdpSocket *socket, Packet *packet) {

   if (packet->findTag<SignalPowerInd>() != nullptr) {
       auto signalPowerInd = packet->getTag<SignalPowerInd>();
       auto rxPower = signalPowerInd->getPower().get();
       EV_INFO << "RX power= " << rxPower << "W" << endl;
   } 

   // process incoming packet
   processPacket(packet);
}