Click here to Skip to main content
15,888,579 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Recently,i got a problem.I can get the RSSI in windows by using Native WiFi API,but the RSSI data is with big fluctuation and almost don't change when I move my computer. Someone say the Native WiFi API has averaged the RSSI data when it return to us,so I want to get the RSSI directly form the NIC card.I searched a lot in the internet,but I got nothing useful.I don't know use which function to achieve this, please help me!Thanks~

What I have tried:

I searched a lot in the internet,but I got nothing useful.
I used DeviceIoControl function but it always return false.
Posted
Updated 11-Sep-16 19:08pm
Comments
[no name] 9-Sep-16 9:08am    
Which WINAPI function are you using? You have not given much information in question. This statement makes no logical sense "RSSI data is with big fluctuation and almost don't change when I move my computer". How can you know if a value with "big fluctuation" changes or not when you move computer. There is no way of comparing RSSI values between devices because each manufacturer uses their own scale: https://en.wikipedia.org/wiki/Received_signal_strength_indication
In other words the RSSI from the card if you could get it has no absolute meaning.
Member 12726857 10-Sep-16 2:13am    
I use the WlanOpenHandle,WlanEnumInterfaces and WlanGetAvailableNetworkList in Native WiFi API provided by microsoft.The "RSSI data is with big fluctuation and almost don't change when I move my computer" means the RSSI i get change a lot in a long time but almost don't change in a short time or when i move my computer.I know there is a software named WirelessMon,it works much better in getting RSSI from NIC in windows,so there must be some way to arrive it.So,i guess there may be some Windows funtion i don't know can get this goal.
Banna_k 19-Feb-24 1:57am    
Hi,

Pls let me know if you got any solution for your query, I am also looking for almost the same requirement, like I would like to know how many wifi access points are available in the system without using the Native WiFi API.

This seems awfully like the sort of info that will be queried in different manners for different cards, i.e - I'd expect it to be hardware-dependant. Should this be the case, the magic is happening inside the device-driver.

How patient and good are you at reverse-engineering for a single device?

Hard-disks don't need drivers, so they can use an agreed interface, which you access with DeviceIoControl. I have little hope (okay, basically 0 - but also, not much more knowledge!) that this will prove to be anything but a painful, tedious process - one that may still have little to no hope of being fruitful.


As an exercise, try downloading the datasheets for each of the NRF24L01 and the a7105 2.4GHz chipsets. I worked with them a few years back, and from memory, they have similar, but quite different methods to retrieve the RSSI value. You'll be looking at the same situation with the the NICs, except you'll have very little idea (if any) of how to drive the correct lines high/lo as needed and to listen for the response, since you can't connect directly to the 2.4 GHz chipset, and instead have to go through the mcu on the board. (Hence the reverse-engineering suggestion)

a7105: [^]

NRF24L01: [^]
 
Share this answer
 
Comments
Member 12726857 10-Sep-16 2:18am    
Thank you for your answer!I really don't know it may be so difficult.I do not want to reverse-engineer for a single device,what i know is that here is a software named WirelessMon,it works much better in getting RSSI from NIC in windows,so i think there may be some Windows funtion i don't know can get this goal or some easy way by using vc++ ,java or in Linux.
enhzflep 10-Sep-16 11:44am    
You're welcome. :)
I hope that I wrongly estimated the level of difficulty of the task at hand, and that the desired low-level info will be available via WinAPI calls.
Good luck!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900