我获得了适当的WiFi信号dBm读数吗?

时间:2012-09-04 18:10:05

标签: c# networking wifi wireless

以下此功能从系统获取WiFi信号。它当前在我的表单上显示“0”(表示我假设的强连接)。我在公司网络上的工作区HP上运行的机器。它似乎没有外部WiFi按钮等。 “0”我是真正的价值还是我需要在真正的无线设备上进行测试?

public static int GetSignalStrengthAsInt()
{
    Int32 returnStrength = 0;
    ManagementObjectSearcher searcher = null;
    try
    {
        searcher = new ManagementObjectSearcher( 
            @"root\WMI", 
            @"select Ndis80211ReceivedSignalStrength 
              from MSNdis_80211_ReceivedSignalStrength 
              where active=true");

        // Call the get in order to populate the collection
        ManagementObjectCollection adapterObjects = searcher.Get();

        // Loop though the management object and pull out the signal strength
        foreach ( ManagementObject mo in adapterObjects )
        {
            returnStrength = Convert.ToInt32( 
                mo["Ndis80211ReceivedSignalStrength"].ToString());
            break;
        }
    }
    catch (Exception)
    {
    }
    finally
    {
        if ( searcher != null )
        {
            searcher.Dispose();
        }
    }
    return returnStrength;            
}

此时正在文本框中显示returnStrength。

1 个答案:

答案 0 :(得分:0)

首先,请注意我不了解您的开发环境。以下是基于经验的一般指示:

  • 信号强度通常以dB为单位或以dBm为单位给出 单元。

  • dB用于信号/噪声比。一个相当好的信号是在 至少18~20 dB。

  • dBm用于接收的纯电源。它通常在范围内 -20dBm(优秀)至-80dBm(非常差)

当无法从设备获取信息时经常会看到

0。所以我的猜测是你的价值无效。