2013-05-29 59 views
1

我正在使用CoreWLan框架爲Mac OS X從接入點讀取RSSI值。CoreWLan - CWNetwork和CWInterface之間的RSSI值差異

我能做到這一點兩種不同的方式:

使用接口(連接到我的網絡)

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

使用網絡:

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

然而,似乎這兩種方法(從接口連接到網絡後應該給出相同的值)給出不同的結果。後一種方法似乎一直給出比接口方法強3-5 dB的值。

關於爲什麼會出現這種差異的任何想法?哪一個更「合法」?

回答

1

當前接口(第一種情況)的rssiValue屬性爲您提供集合 rssi。 雖然掃描結果(第二種情況)的rssiValue爲掃描時刻提供了您的rssi值。 這就是爲什麼一般第一個比第二個少。但有時你可以看到掃描結果中rssi值非常低,因爲有一些干擾。

還有一件事情:可能會有少數接入點具有相同的ssid,在這種情況下,您無法確定網絡[0]是否會成爲當前連接的接入點的結果。您應該首先檢查bssid值。

+0

謝謝!是的,我首先檢查BSSID,我只是簡單地使用該代碼片段。彙總的RSSI是否意味着它將它平均分配出來?如果是這樣,需要多少平均值? –

+0

所有文檔只是「動態查詢當前聚合RSSI測量的接口」。所以它可能是一個平均值。不能肯定地說,但我認爲它從連接建立以來每次掃描結果都需要rssi值。 – cody