这与我以前的帖子有关: Wireless.h How do I print out the signal level?
在弄清楚如何以“dBm”形式打印之后,我意识到它与OpenWrt上安装的“iw”工具相比实际上有一些差异。
我使用OpenWrt终端的“iw wlan0 scan”命令在接入点的近距离使用无线路由器,我也运行了我的程序。
“iw”方法返回的正确值约为-14dBm,但程序只显示低至-50dBm ......这在所有情况下都不准确。
任何可能导致此问题的想法?是我用来打印信号电平的转换吗?如上面提到的线程所示?还是我没想到的其他一些原因?
printf("Transmit power: %d ", (int8_t) result->stats.qual.level);
这就是我在程序中打印信号强度的方法,我从无线工具的 wireless.h 部分看到了这一点:
struct iw_quality
{
__u8 qual; /* link quality (%retries, SNR,
%missed beacons or better...) */
__u8 level; /* signal level (dBm) */
__u8 noise; /* noise level (dBm) */
__u8 updated; /* Flags to know if updated */
};
感谢。