我正在写一个C程序来管理无线网络的某些方面(接入点+客户端设备)
程序的一部分在设备上运行,另一部分在AP上运行。AP是一个简单的Linux工作站(一个Cubietruck,稍后与Intel Celeron控制板交换;使用hostapd和dnsmasq设置访问点)
一些功能已经实现。我对cfg80211/nl80211做了很多工作,对Wext做了一些工作,一些BSD套接字上的通信例程还存在。
但现在出现了一个问题。在接入点上运行的C程序中,我需要相关设备的接收信号强度。
在设备上一切正常。有了nl80211,我几乎可以得到有关连接的所有信息。但在接入点我不知道如何获得RSS。我尝试了一些具有某些属性的nl80211请求,但无法使其工作。
当然,在设备上很容易,因为它们只有一个连接。但在AP上,我希望得到一个带有链表或嵌套属性的nl80211答案,但什么都没有。我检查了来自某些请求的应答的包含属性,这些消息不包含任何可用的内容。
有人知道怎么解决这个问题吗?在WLAN AP上获取相关设备的接收信号强度应该不是什么大事。
如果能用nl80211来实现,那就太好了,不过也欢迎使用另一种解决方案。
可能需要一些WiFi包解析?我听说有类似RSSI(接收信号强度指示器)的东西,但我不熟悉。
提前谢谢

最佳答案

这里有一个警告:从AP到一个电台/设备和从那个电台到同一个AP的无线信道衰减是同时相同的。因此,如果AP和站点的传输功率相同,那么站点可以使用当前的解决方案向AP报告其RSS,这项工作就完成了。当然,不同站点的发送功率可能不同,但它们是恒定的。所以找出它们并做出相应的调整。下面是一个简单的例子:
AP tx功率20 dBm;
站1 tx功率15 dBm,RSS-37 dBm;
那么从1号站到AP链路的RSS应该是-42 dBm

关于c - Linux接入点上关联设备的接收信号强度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25658444/

10-13 03:44