Get Rssi Value From Windows
Asked Answered
C

2

5

I would like to measure rssi value of modem.Is there any api to get rssi value for Windows?I used to do that with Wifi.Manager in android.But i couldn't find any api for Windows

Cymatium answered 25/5, 2012 at 19:1 Comment(2)
Are you asking RSSI for your WiFi or some other device? How this device is connected to your Windows Machine?Betthezul
yes for wifi.I want to read rssi value of laptop wi-fi chip.Cymatium
B
1

Using Native code is the best. You will need to use WlanQueryInterface() with wlan_intf_opcode_rssi opcode which will return RSSI value as LONG data type. From there you can convert it to 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
);

Here using opcode wlan_intf_opcode_rssi you will get RSSI value:

WLAN_INTF_OPCODE  >> wlan_intf_opcode_rssi >> LONG

Here is the C++ sample on how to start with:

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

If you want C# Try this: How to get SSID and RSSI for Win7 using C#

Betthezul answered 25/5, 2012 at 19:44 Comment(6)
Isn't there any Java api?I am much more familiar JavaCymatium
I know J2ME has API to get this value directly however not sure any for desktop.. If you are language dependent, its best to phrase clearly in your question.Betthezul
Check this out #7142985, it talks about PlaceLab sourceforge page and Soptter.dll with Java Wrapper..Betthezul
I couldn't use this Interface.In this link msdn.microsoft.com/en-us/library/windows/desktop/… there is a sample but it only shows connected wireless infos.I want to see all enable wirelesses rssi valuesCymatium
That is very easy. you just need to use WlanEnumInterfaces API to enumerate all the currently enabled wireless on local machine. Here is the sample code: msdn.microsoft.com/en-us/library/windows/desktop/…Betthezul
Actually this link #1192876 really help.It find all networks but after that i should find each result's rssi using WlanQueryInterface. dwResult = WlanGetAvailableNetworkList(hClient, &pIfInfo->InterfaceGuid, 0, NULL, &pBssList); After that pBssList-->rssi doesn't workCymatium
S
1

Since this question appeared on home page for review- the existing answer is outdated. There is now a Managed Wifi API available as a wrapper around the Windows Native Wifi API.

Signal strength in percentage and RSSI could be obtained as, Wlan.WlanAvailableNetwork[] networks = 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);
 } 
Steffaniesteffen answered 3/1, 2019 at 15:48 Comment(1)
The first link is no longer valid.Dumyat

© 2022 - 2024 — McMap. All rights reserved.