理想情况下,我希望近乎实时地监控无线网络的信号强度,比如每 100 毫秒一次,但如此高的频率可能有点过大了。
我正在使用托管无线网络 http://managedwifi.codeplex.com/库轮询 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
// ...
}
}
最快的实际轮询延迟是多少?这是测量信号强度的最佳方法吗?
恐怕最小的轮询延迟会随您的驱动程序堆栈而变化,但我怀疑也会随周围的接入点数量而变化。 WiFi是一种基于时隙的协议。
根据我(有限的)经验,1 秒的间隔大约是正确的,您已经看到电台列表并不总是完整的(即,在 1 次扫描中缺少电台,在下一次扫描时又返回)。
这是测量信号强度的最佳方法吗?
视情况而定,但您预计它会以多快的速度发生变化?四处走动时,信号在一秒钟内不会有太大变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)