CoreWLan - CWNetwork和CWInterface之间的RSSI值差异

时间:2013-05-29 04:52:26

标签: objective-c macos networking network-programming corewlan

我正在使用适用于Mac OS X的CoreWLan框架从接入点读取RSSI值。

我可以用两种不同的方式做到:

使用界面(连接到我的网络)

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

使用网络:

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

然而,似乎这两种方法(由于接口连接到网络应该给出相同的值)会产生不同的结果。后一种方法似乎始终给出比接口方法强3-5 dB的值。

关于为什么会出现这种差异的任何想法?哪一个更“合法”?

1 个答案:

答案 0 :(得分:2)

当前界面的rssiValue属性(第一种情况)为您提供聚合 rssi。 虽然扫描结果的rssiValue(第二种情况)在扫描时给出了rssi值 。 这就是为什么一般来说第一个不到第二个。但有时您会因为一些干扰而在扫描结果上看到非常低的rssi值。

还有另一件事:可能有少量具有相同ssid的接入点,在这种情况下,您无法确定网络[0]将是当前连接的接入点的结果。你应该先检查bssid值。