Saturday, 29 March 2008

Bluetooth signal strength

On XP it seems that most of the BT stacks support the ability to sense the signal strength when communicating with a device, apart from when using Java-ME and the Microsoft Stack on XP, for instance

BlueSoleil

BLUETOOTH_DEVICE_INFO_EX
{
..
CHAR cSignalStrength;
};

Toshiba

Using the BtGetRSSI command you can get the difference (db value) of a received signal index on the strength of "Golden Receive Power Range"

BroadCom
Using the GetConnectionStats() you can get the signal strength, from -128 to 127

Microsoft (Windows CE/Mobile)
Windows Mobile version of the MS stack supports signal strength through the BthReadRSSI, again a range of -128 to 128, but i can't find the same in the XP version, see http://msdn2.microsoft.com/en-us/library/aa362927(VS.85).aspx for the APIs.

There is a BluetoothIsConnectable() which returns a TRUE/FALSE but nothing else, the bluetoothapis.h which contains all the structures doesn't seem to have anything in it either, such as RSSI, strength or even signal so i don't think it is supported at least by any documented API.

Anyone else know if you can get the RSSI signal strength using the MS BT stack on XP?