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

Posted

技术标签:

【中文标题】OMNET++:如何获取无线信号功率?【英文标题】:OMNET++: How to obtain wireless signal power? 【发布时间】:2018-12-24 04:52:12 【问题描述】:

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

【问题讨论】:

【参考方案1】:

INET 4.0.0 中,模块接收到的数据包包含几个tags。在其他之间有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);

【讨论】:

在我的情况下,功率始终为 0mW。 ***.com/questions/65293303/…

以上是关于OMNET++:如何获取无线信号功率?的主要内容,如果未能解决你的问题,请参考以下文章

获取系统的网络状态与无线网的信号强度

iOS 如何定位获取周围地点信息

无线通讯 | OTA性能测试详解

如何使用 Objective-C 从 iOS 上的 iBeacon 数据包中获取信号强度值

如何使用 node.js 获取周围无线接入点的列表?

无线知识说明