2

アクセス ポイントから RSSI 値を読み取るために、Mac OS X 用の CoreWLan フレームワークを使用しています。

私はそれを2つの異なる方法で行うことができます:

インターフェイスの使用 (ネットワークに接続されている)

currentInterface = [CWInterface interface];
[currentInterface rssivalue];

ネットワークの使用:

currentInterface = [CWInterface interface];
networks = [[currentInterface scanForNetworksWithName:@"mySSID" error:nil] allObjects];
[networks[0] rssiValue];

ただし、これらの 2 つの方法 (インターフェイスがネットワークに接続されているため、同じ値が返されるはずです) では異なる結果が得られるようです。後者の方法は、インターフェイス方法よりも一貫して 3 ~ 5 dB 強い値を与えるようです。

この不一致がなぜ起こっているのかについてのアイデアはありますか? どちらがより「合法的」ですか?

4

1 に答える 1

3

現在のインターフェイスの rssiValue プロパティ (最初のケース) は、集計rssi を提供します。スキャン結果の rssiValue (2 番目のケース) は、スキャンの瞬間の rssi 値を示します。それが、一般的に最初のものは2番目のものよりも少ない理由です。ただし、干渉が原因で、スキャン結果に非常に低い rssi 値が表示される場合があります。

もう 1 つのことがあります。同じ ssid を持つアクセス ポイントがほとんどない可能性があり、そのような場合、現在接続されているネットワークの結果がネットワーク [0] になるかどうかを確認できません。最初に bssid 値を確認する必要があります。

于 2013-05-29T05:50:15.027 に答える