1

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

4

1 回答 1

4

INET4.0.0 中,模块接收到的数据包包含多个标签。其他之间有SignalPowerInd标签。根据SignalTag.msg

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

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

在此处输入图像描述

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

在此处输入图像描述


可以使用标准 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);
}
于 2018-07-17T10:01:28.660 回答