Solved my own issue this morning... for anyone who is interested.
Netstumbler uses a base noise floor of -100 for the APs I was testing on... the way netstumbler calculates the SNR is it takes the signal (in DB) and adds the absolute value of the noise floor.
Eg: -52 signal -100 noise floor = 48SNR
Unfortunately netsh doesn't output RSSI values so I found a much better program called inSSIDer developed by the good people at metageek that prints out RSSI values based on the module. Adding the netstumbler noise floor of 100 to the RSSI value will result in the SNR value.
For those who cannot run inSSIDer for any reason I also found some sample C# code written by Peter Bromberg:
Code:
public static int GetSignalStrengthAsInt()
{
Int32 returnStrength = 0;
ManagementObjectSearcher searcher = null;
try
{
// Query the management object with the valid scope and the
correct query statment
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 e )
{
}
finally
{
if ( searcher != null )
{
searcher.Dispose();
}
}
return returnStrength;
}
This should return the RSSI value. Hope that helps someone else like me :P
Feel free to correct any of my ramblings if they are incorrect.