アクセス ポイントから 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 強い値を与えるようです。
この不一致がなぜ起こっているのかについてのアイデアはありますか? どちらがより「合法的」ですか?