我正在使用新发布的INET 4.0框架用于OMNET ++,我想在无线主机(类型为AdhocHost)中获得接收到的信号强度值。我该怎么办?
答案 0 :(得分:2)
在INET
4.0.0中,模块接收的数据包包含多个tags。在其他标签之间有SignalPowerInd
标签。根据{{3}}:
此指示指定在接收数据包期间检测到的平均模拟信号功率。 它可能存在于从物理层到应用程序的数据包中。
此标记存在于无线MAC层的数据包处理中,例如:
SignalTag.msg
应用层接收到的数据包也包含SignalPowerInd
:
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);
}