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

时间:2010-10-04 12:29:46

标签: c# wifi signal-strength

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

我正在使用Managed 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
        // ...
    }
}

什么是最快的实际轮询延迟,这是测量信号强度的最佳方法吗?

2 个答案:

答案 0 :(得分:1)

我担心最小的轮询延迟会随着您的驱动程序堆栈而变化,但我怀疑周围的接入点数量。 WiFi是基于时隙的协议。

从我(有限)的经验来看,1秒的间隔时间是正确的,您已经看到站点列表并不总是完整的(即1次扫描时丢失的站点,下一次扫描时丢失)。

  

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

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

答案 1 :(得分:0)

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

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

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

总的来说,虽然通常有一些实际的最大频率,但除非最大有用频率更高,否则不值得考虑,这取决于你的目的。