geting wifi信号水平在c#

我正在尝试连续读取wifi信号,以了解嵌入式系统的wifi信号电平如何变化。 我读过几篇关于如何在C#中读取wifi信号电平的文章,例如:

多久查询一下wifi信号强度?

但是当我想要做同样的事情时,我总是获得相同的价值。 我的代码如下(简化版):

    static void Main(string[] args)
    {
        string selectedSSDID = "BTWiFi";
        var client = new WlanClient();
        for (int i = 0; i < 1000; i++)
        {
            foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
            {
                Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList();

                foreach (Wlan.WlanBssEntry network in wlanBssEntries)
                {
                    var networkSSID = Encoding.ASCII.GetString(network.dot11Ssid.SSID, 0, (int)network.dot11Ssid.SSIDLength);

                    if (selectedSSDID == networkSSID)
                    {
                        Console.Out.WriteLine(network.rssi);
                    }
                }
            }
            System.Threading.Thread.Sleep(1000);
        }
    }

当我运行这段代码时,我会看到信号电平总是被报告为一个值,并且不会改变。

我用它来对付一个带wifi的嵌入式系统,甚至当我将设备放在PC旁时,以及当我移动到离电脑很远的另一个房间时,如果应用程序运行,它总是报告相同的值,如果我重新启动应用该值的变化。

这段代码有什么问题,它没有报告正确的值?

链接地址: http://www.djcxy.com/p/84971.html

上一篇: geting wifi signal level in c#

下一篇: how can I send raw packets over wifi without a network?