2014-09-04 113 views
1

我正在寫一個C程序來管理無線網絡(接入點+客戶端設備)程序的 第一部分對設備的另一運行上運行的某些方面AP。 AP是一個簡單的Linux工作站(Cubietruck,稍後與Intel Celeron控制板交換;使用hostapd和dnsmasq進行接入點設置) 某些功能已經實施。我已經使用cfg80211/nl80211做了很多工作,並且使用了Wext和一些通過BSD套接字的通信例程。接收關聯設備的信號強度在Linux接入點

但現在出現了一個問題。在接入點上運行的C程序中,我需要關聯設備的接收信號強度。 在設備上一切正常。使用nl80211,我幾乎可以獲得有關連接的所有信息。但在接入點上,我不知道如何獲取RSS。我已經嘗試了一些nl80211請求的一些屬性,但無法讓它工作。 當然,在設備上很容易,因爲它們只有一個連接。但在AP上,我曾預料過一個像鏈接列表或嵌套屬性的nl80211答案,但沒有任何結果。我檢查了某些請求中包含的答案的屬性,並且這些消息中沒有任何可用的東西。

有人知道如何解決這個問題嗎?在WLAN AP上獲取關聯設備的接收信號強度應該不是什麼大問題。 如果可以使用nl80211,那會非常好,但另一個解決方案也是受歡迎的。 也許有一些WiFi包解析?我聽說有一個像RSSI(接收信號強度指示器)的東西,但我不熟悉它。

預先感謝

回答

0

這裏的一個wrokaround:從AP無線信道衰減到一臺/裝置,並從該站到相同的AP是在同一時間是相同的。因此,如果AP和電臺的發射功率都相同,電臺可以使用您當前的解決方案將他們的RSS報告給AP,並完成工作。當然,在不同地點的TX權力可能不同,但它們是不變的。所以找出它們並做相應的調整。這裏有一個簡單的例子:

AP發射功率爲20dBm; 站點1 tx功率15 dBm,RSS -37 dBm; 然後從站1到AP鏈接RSS應該是-42 dBm的

+0

謝謝你,我也想過類似的東西。這會起作用,但我希望有一個「乾淨的」解決方案。不過謝謝你的回答。 – Dionysos 2014-09-08 08:31:14

+0

可能需要破解進入wifi驅動程序。我知道sb不僅可以獲得RSS,還可以獲得來自Atheros WiFi NIC和ath9k驅動程序的信道響應。 – Daniel 2014-09-08 15:10:03