我正在编写一个 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 和站点的传输功率都相同,则站点可以使用您当前的解决方案将其 RSS 报告给 AP,工作就完成了。当然,不同站点的 tx 功率可能不同,但它们是恒定的。因此,找出它们并做出相应的调整。这是一个简单的例子:
接入点发射功率 20 dBm; 站 1 tx 功率 15 dBm,RSS -37 dBm; 那么station 1到AP链路的RSS应该是-42 dBm
关于c - Linux 接入点上关联设备的接收信号强度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25658444/