私はLinux x64でUSB Wi-Fiアダプタ(rtl8192cu)でwpa_supplicant 2.0を使用しています。
wpa_cliからスキャンすると、何も移動せず、同じアクセスポイントに対しても大きく異なる数字が表示されます(正と負の数が交互に表示されます)。このデータをGUIでユーザーに表示したいので、一貫した形式が必要になり、最終的にパーセントに変換できる形式が望ましいです。
たとえば、SSID "1"は、信号レベルが約-40の場合もあり、数字10の場合もあります。常に通常のdBm(負の)数値を出力しますが、すべてのOS /アプリがそれを少し異なるように扱うように見えるため、この場合の範囲は何であるかわかりません。 Web の一部の文書では、-50 から -100 までの有効な値を提案し、一部はまったく異なる内容を表し、一部は独自の数値を構成します。ここでは、どんな標準にも従わないようです。
bssid / frequency / signal level / flags / ssid
XX:XX:XX:XX:XX:01 2437 -38 [WPA2-PSK-CCMP][WPS][ESS] one
XX:XX:XX:XX:XX:02 2427 -38 [ESS] \x00\x00\x00\x00\x00\x00\x00
bssid / frequency / signal level / flags / ssid
02:00:00:00:01:01 2437 10 [WPA2-PSK-CCMP][ESS] two
02:00:00:00:00:01 2437 10 [WPA2-PSK-CCMP][ESS] three
XX:XX:XX:XX:XX:01 2437 10 [WPA2-PSK-CCMP][WPS][ESS] one
XX:XX:XX:XX:XX:02 2427 -39 [ESS] \x00\x00\x00\x00\x00\x00\x00
bssid / frequency / signal level / flags / ssid
02:00:00:00:01:01 2437 10 [WPA2-PSK-CCMP][ESS] two
02:00:00:00:00:01 2437 -40 [WPA2-PSK-CCMP][ESS] three
XX:XX:XX:XX:XX:01 2437 10 [WPA2-PSK-CCMP][WPS][ESS] one
XX:XX:XX:XX:XX:02 2427 -39 [ESS] \x00\x00\x00\x00\x00\x00\x00
bssid / frequency / signal level / flags / ssid
02:00:00:00:01:01 2437 10 [WPA2-PSK-CCMP][ESS] two
02:00:00:00:00:01 2437 10 [WPA2-PSK-CCMP][ESS] three
XX:XX:XX:XX:XX:01 2437 -42 [WPA2-PSK-CCMP][WPS][ESS] one
XX:XX:XX:XX:XX:02 2427 -41 [ESS] \x00\x00\x00\x00\x00\x00\x00
bssid / frequency / signal level / flags / ssid
02:00:00:00:01:01 2437 10 [WPA2-PSK-CCMP][ESS] two
02:00:00:00:00:01 2437 10 [WPA2-PSK-CCMP][ESS] three
XX:XX:XX:XX:XX:01 2437 10 [WPA2-PSK-CCMP][WPS][ESS] one
XX:XX:XX:XX:XX:02 2427 -41 [ESS] \x00\x00\x00\x00\x00\x00\x00
これらの信号レベルをユーザーに表示できる一貫した割合に変換する方法はありますか?
また、ユーザーが別のWi-Fiアダプタ/ドライバを使用している場合は、信号レベルが私が心配する必要がある別の形式になりますか?
答え1
私は信号レベルが次のようになると思います。デシベル(dBm)。
抜粋
デシベル(時々デシベルミリワット)は、1ミリワット(mW)を基準にデシベル(dB)で測定された電力比の略です。非常に大きな値と非常に小さい値を短い形式で表現できるため、無線、マイクロ波、光ファイバネットワークにおける絶対電力の便利な測定として使用されます。 dBWを1ワット(1000mW)と比較します。
ワットを基準とするので絶対的な単位であり、絶対電力を測定するときに使用されます。これに比べてデシベル(雨) は、信号対ノイズ比など、2 つの値間の比率を定量化するために使用される無次元単位です.
信号の絶対電力はワットで測定されます。デシベル(雨)相対的なので、現在と最後の読み取り値の違いのみを知らせることができます。また、ログスケールであることも参照してください。これ米存在するデシベル私たちの規模は1ミリワットの電力に相対的であると言ってください。 0dBm = 1ミリワット。
抜粋
負の値が表示されるのは、小さい正の数を対数目盛で表現するためです。ログに表示される値は指数を表します。たとえば、対数10スケールでは、-2の値は、10を-2乗で2乗した0.01を表します。同様に、負のdBmは、電力計算に負の指数を適用することを意味する。 0dBmは電力1mWに等しいので、-10dBmは0.1mW、-20dBmは0.01mWに等しい。いくつかの計算では、弱い信号を0.0000000001mWより-100dBmで記述する方が簡単で便利です。
源泉:http://www.tomshardware.com/forum/9782-43-read-signal-strength#8171161
信号レベルを表示する方法は数値線であり、0から100の範囲に正規化された値を表示する傾向があります。値はログなので、次のようになります。
-99 -98 -97 ... -2 -1 0 +1 +2 +3 ...
Just like anything else involving such a scale, -1 is greater (louder) than -99.
源泉:http://www.tomshardware.com/forum/9782-43-read-signal-strength#8241725
編集#1
OPに関するフォローアップの質問です。
1 - マイナスの尺度はわかりませんが、-100から0ではないことは確かです。この場合、正しい比率とドライバーの間で変化するケースを知る必要があります。
負の数は対数スケールです。彼らはユニットを持っていません。数字は-100-0に限定されず、負数から正数までです。ログスケールを使用する理由は、数字を減らして瞬間瞬間に大きく変化しないようにするためです。それが表す数値は大きく変動する可能性があり、それらが持つことができる値はサイズによって異なるため、ログが使用されます。
dBmを使用することは、この値が1ミリワットに基づいていることを意味します。これはスケールのゼロ値です
2 - 数字が時々正数である理由を知る必要があります(今まで+10だけ見ました)…dBmで測定すると正数は理解できないからです(これが実際には間違い)。
これは確かに間違いではありません。ログのために、これらの値は負から正の間で変化します。これは、数値「1/10」を「1*10^-1」タイプで表すのと同じです。 2番目の形式の「-1」を確認してください。
これらの値がどのように表示されるかを案内する計算の実行方法を理解するのに役立つ次のリソースを参照してください。
- このフォーラムをチェックしてください。信号強度 - dBmの計算?。まだ混乱したら教えてください。混乱すると、数学と計算を助けることができます。
- このPDFは、次のタイトルで計算を実行する方法を示しています。信号強度のパーセンテージをdBm値に変換。