多长时间轮询wifi信号强度?

理想情况下,我希望近乎实时地监控无线网络的信号强度,比如说每100毫秒,但是如此高的频率可能是过度的。

我正在使用托管Wifi库来轮询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次扫描时丢失的站点,下一次扫描时丢失)。

这是测量信号强度的最佳方法吗?

取决于,但你期望它有多快改变? 四处走动时,信号的变化不会超过一秒钟。

对于大多数情况,如果您想要监控任何事情 ,合理的指导方针是找出尽可能少的东西来实现您的目的,然后将频率提高一点以上,以捕捉延迟和意外峰值。

例如,如果您要向用户显示此信息,那么每半秒钟不止一次就意味着变化太快,用户无法理解,所以大约四分之一秒应该足够确保你抓住了你需要的一切。

如果您正在记录,那么这取决于您的日志周期的长短。 每隔几分钟就有可能遇到任何严重的问题时间,所以每分钟一次应该没问题。

总而言之,虽然通常存在一些实际的最大频率,但除非最大有用频率更高,否则不值得考虑,这取决于您的目的。