これは私の以前の投稿に関連しています: Wireless.h 信号レベルを出力するにはどうすればよいですか?
それを「dBm」形式で出力する方法を見つけた後、OpenWrt にインストールされている「iw」ツールと比較して、実際にはいくつかの違いがあることに気付きました。
OpenWrt端末から「iw wlan0 scan」コマンドを使用して、アクセスポイントから近距離でワイヤレスルーターを使用し、プログラムも実行しました。
「iw」メソッドは約-14dBmの正しい値を返しましたが、プログラムは約-50dBmまでしか表示しません...これはまったく正確ではありません.
これを引き起こす可能性のあるアイデアはありますか?信号レベルを出力するために使用した変換ですか? 上記のスレッドに見られるように?それとも思いもよらなかった別の理由?
printf("Transmit power: %d ", (int8_t) result->stats.qual.level);
これは、Wireless Toolsの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 */
};
ありがとう。