0
votes

I'm right now focusing on Android, but I believe the answers to these questions apply to any operating system, they just will use different functions to get the data.

Once I've established a BLE connection, I can BluetoothGatt.readRemoteRssi() to "Read the RSSI for a connected remote device."

First question: am I understanding this function correctly, it is returning to me the strength of the signal (transmitted from the remote BLE device) that my Android device is receiving, right? I think it's the function name that's throwing me off, shouldn't the name just be readRssi()? readRemoteRssi() makes me think there's a companion function readLocalRssi() somewhere.

Second question: assuming I am understanding the function correctly, is there anything built into Bluetooth that lets me ask "what is the remote BLE device seeing for RSSI?" In other words, of the signal that the Android device is transmitting, how much of that is reaching the remote BLE device?

ADDED LATER

Based on the answer I got, apparently I'm not explaining myself very well. Let me try again.

The remote BLE device is transmitting with a certain power, and those radio waves head out in all directions, and some of those waves are received by my mobile device. My mobile device measures how strong those waves are, and that's reported as RSSI. RSSI stands for "Received Signal Strength Indicator" and since it's the local mobile device that's doing the receiving, it seems strange to name the function "remote". Of course RSSI measures something coming from a remote transmitter - otherwise it wouldn't be very useful.

Similarly, the mobile device is transmitting with a certain power, and those radio waves head out in all directions, and some of those radio waves are received by the remote BLE device. That remote BLE device measures the strength of those waves, and that would be his RSSI. My second question is asking whether there's anything in the Bluetooth standard (a predefined characteristic, for example, like "Battery Level") that lets me mobile device query the remote BLE device and ask "Hey dude, how much signal you getting?"

1
How does rssi matters till the time connection to the remote device is up and running? What is your use case?siva
I'd like to be able to display the signal strength to the user so they can tell if they are starting to get too far away from the remote device. I'm thinking that signal strength will give me an indication of this long before I start to see packets dropping and other failures.Betty Crokker

1 Answers

-1
votes
am I understanding this function correctly, it is returning to me the strength of the signal
 (transmitted from the remote BLE device) that my Android device is receiving, right?

 Actually rssi is calculated by ble chip based on the advertising packets that are received from the remote device. We don't directly get the rssi value from remote device.

I think it's the function name that's throwing me off, shouldn't the name just be readRssi()?

No. We are actually reading remote device's rssi.

readRemoteRssi() makes me think there's a companion function readLocalRssi() somewhere.

No there is no such method as rssi is determined at the other end to which the current device is connected to.

assuming I am understanding the function correctly, is there anything built into Bluetooth that lets me ask "what is the remote BLE device seeing for RSSI?" In other words, of the signal that the Android device is transmitting, how much of that is reaching the remote BLE device?

It is rssi. It is calculated based on how many advertising packets received against total packets.

Note: some of my answers are my guess based on my experience.