我正在编写C程序来管理无线网络的某些方面(接入点+客户端设备) 程序的一部分在设备上运行,另一部分在AP上运行。 AP是一个简单的Linux-Station(Cubietruck,后来与Intel Celeron控制板交换;使用hostapd和dnsmasq进行接入点设置) 一些功能已经实现。我已经用cfg80211 / nl80211完成了很多工作,并且有一些与Wext和BSD套接字上的一些通信例程有关。
但现在问题出现了。在接入点上运行的C程序中,我需要相关设备的接收信号强度。 在设备上一切正常。使用nl80211,我几乎可以获得有关连接的所有信息。但在接入点上,我不知道如何获取RSS。我已经尝试了一些具有某些属性的nl80211请求,但无法使其正常工作。 当然,在设备上它很简单,因为它们只有一个连接。但是在AP上我曾经期望像带有链表或嵌套属性的nl80211答案,但没有。我检查了某些请求的答案的包含属性,并且消息中没有任何可用的内容。
有人知道如何解决这个问题吗?获得WLAN AP上相关设备的接收信号强度不应该是一个大问题。 如果用nl80211可行,那将是非常好的,但也欢迎另一种解决方案。 也许有一些WiFi包解析?我听说有类似RSSI(接收信号强度指示器)的东西,但我不熟悉它。
提前致谢
答案 0 :(得分:0)
以下是一个问题:从AP到站/设备以及从该站到同一AP的无线信道衰减同时是相同的。因此,如果AP和站的传输功率都相同,站点可以使用您当前的解决方案向AP报告其RSS,并完成工作。当然,不同站点的tx功率可能不同,但它们是不变的。所以找出它们并相应地做出调整。这是一个简单的例子:
AP tx功率20 dBm; 站1 tx功率15 dBm,RSS -37 dBm; 然后从站1到AP链路的RSS应为-42 dBm