理想情况下,我希望近乎实时地监控无线网络的信号强度,比如每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
// ...
}
}
什么是最快的实际轮询延迟,这是测量信号强度的最佳方法吗?
答案 0 :(得分:1)
我担心最小的轮询延迟会随着您的驱动程序堆栈而变化,但我怀疑周围的接入点数量。 WiFi是基于时隙的协议。
从我(有限)的经验来看,1秒的间隔时间是正确的,您已经看到站点列表并不总是完整的(即1次扫描时丢失的站点,下一次扫描时丢失)。
这是测量信号强度的最佳方法吗?
取决于,但你期望它改变多快?四处走动时,信号的变化不会超过一秒钟。
答案 1 :(得分:0)
对于您希望监控任何事情的大多数情况,合理的指导方针是找出尽可能少的东西来实现您的目的,然后将频率提高一点以上,以捕捉延迟和意外尖峰。
例如,如果您要向用户显示此信息,那么每半秒一次不止一次意味着变化太快,用户无法理解,所以大约四分之一秒应该是绰绰有余,确保你能抓住你需要的一切。
如果您正在记录,那么这取决于您的记录周期的长短。每隔几分钟就有可能遇到任何严重的问题时间,所以每分钟一次应该没问题。
总的来说,虽然通常有一些实际的最大频率,但除非最大有用频率更高,否则不值得考虑,这取决于你的目的。