题
理想情况下,我想监视近实时的无线网络的信号强度,比如每100ms,但是这样的高频可能是矫枉过正。
我使用的托管无线上网库轮询RSSI。我实例化一个WlanClient client = new WlanClient();
一次,并重新使用该client
测量信号强度每隔一秒左右(但我想更经常做):
foreach (WlanClient.WlanInterface wlanInterface in _client.Interfaces)
{
Wlan.WlanBssEntry[] wlanBssEntries = wlanInterface.GetNetworkBssList();
foreach (Wlan.WlanBssEntry wlanBssEntry in wlanBssEntries)
{
int sigStr = wlanBssEntry.rssi; // signal strength in dBm
// ...
}
}
什么是最快的实际轮询延迟,这是测量信号强度的最佳方式?
解决方案
恐怕最小轮询延迟会有所不同,您的驱动程序堆栈,而且我也怀疑周围接入点的数量。无线网络是基于时隙的协议。
从我的(有限的)经历1秒的时间间隔大约是正确的,你就已经看到,电台列表并不总是完整的(即站失踪1扫描,回到了下一个)。
这是测量信号强度的最佳方式?
取决于但如何快,你指望它改变?当走动时,信号不会在第二变化不大。
其他提示
有关要监视大多数情况下的任何的合理的方针是弄清什么是尽可能少,以满足您的目的,那么增加频率有点超出,要赶上延误和意外尖峰。
例如,如果你要显示这个用户,那么多曾经每半秒不止是要平均变化太快,为用户有意义做的意义,所以约四分之一秒的应足够多,以确保您在捕捉你所需要的一切。
如果你正在登录,那就要看你的日志周期会有多长了。每隔几分钟,很可能赶上任何严重问题的时间,所以一旦一分钟应该做的罚款。
在所有的,而往往存在一些实际最高频率,它不值得考虑,除非最高有用频率较高,而取决于你的目的。
不隶属于 StackOverflow