从Windows获取Rssi值

时间:2012-05-25 19:01:27

标签: windows rssi

我想测量调制解调器的rssi值。是否有任何api来获取Windows的rssi值?我曾经在android.But中使用Wifi.Manager执行此操作我无法找到任何适用于Windows的api

2 个答案:

答案 0 :(得分:0)

使用Native代码是最好的。您需要将WlanQueryInterface()与wlan_intf_opcode_rssi操作码一起使用,该操作码将RSSI值作为LONG数据类型返回。从那里你可以将它转换为dbm。

DWORD WINAPI WlanQueryInterface(
 __in        HANDLE hClientHandle,
 __in        const GUID *pInterfaceGuid,
 __in        WLAN_INTF_OPCODE OpCode,
 __reserved  PVOID pReserved,
 __out       PDWORD pdwDataSize,
 __out       PVOID *ppData,
 __out_opt   PWLAN_OPCODE_VALUE_TYPE pWlanOpcodeValueType
);

在这里使用操作码wlan_intf_opcode_rssi,您将获得RSSI值:

WLAN_INTF_OPCODE  >> wlan_intf_opcode_rssi >> LONG

以下是关于如何开始的C ++示例:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms706765(v=vs.85).aspx

如果你想要C#试试这个: How to get SSID and RSSI for Win7 using C#

答案 1 :(得分:0)

由于此问题出现在主页上以供审核-现有答案已过时。 现在Managed Wifi API周围有一个Windows Native Wifi API作为包装。

信号强度百分比和RSSI可以通过以下方式获得: Wlan.WlanAvailableNetwork []网络= wlanIface.GetAvailableNetworkList(0);

Wlan.WlanBssEntry[] redes = wlanIface.GetNetworkBssList(); //Get the atribute that you need

foreach (Wlan.WlanBssEntry network in redes)
{
    Console.Write("Network SSID {0} RSSI {1}\n ", GetStringForSSID(network.dot11Ssid),
 network.rssi);
 }