【问题标题】:How often to poll wifi signal strength?多久轮询一次wifi信号强度?
【发布时间】:2011-04-20 18:59:18
【问题描述】:

理想情况下,我想近乎实时地监控无线网络的信号强度,比如每 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
        // ...
    }
}

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

【问题讨论】:

    标签: c# wifi signal-strength


    【解决方案1】:

    恐怕最小的轮询延迟会因您的驱动程序堆栈而异,但我怀疑周围接入点的数量也会有所不同。 WiFi是一种基于时隙的协议。

    根据我的(有限的)经验,1 秒的间隔大约是正确的,您已经看到电台列表并不总是完整的(即在 1 次扫描中缺少电台,在下一次扫描时返回)。

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

    视情况而定,但您预计它会以多快的速度发生变化?走动时,信号在一秒钟内变化不大。

    【讨论】:

    • +1 是的 1-3 秒感觉不错,但 1 秒可以捕捉到大多数变化。通过“最佳方式”,我的意思是代码是最优的吗?能否详细说明“WiFi是一种基于时隙的协议”?
    【解决方案2】:

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

    例如,如果您要向用户显示此内容,那么每半秒不止一次将意味着更改太快,用户无法有意义地理解,因此大约四分之一秒应该是足以确保您捕捉到所需的一切。

    如果您正在记录,那么这取决于您的记录期将持续多长时间。每几分钟一次可能会发现任何严重的问题时间,所以每分钟一次就可以了。

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

    【讨论】:

      猜你喜欢
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      相关资源
      最近更新 更多