从Windows获取Rssi值

问题描述 投票:1回答:2

我想测量调制解调器的rssi值。是否有任何api可以获取Windows的rssi值?我曾经在android中使用Wifi.Manager来做到这一点,但我找不到Windows的任何api

windows rssi
2个回答
0
投票
使用本机代码是最好的。您将需要将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#


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); }

© www.soinside.com 2019 - 2024. All rights reserved.