低功耗蓝牙 - 双方获得RSSI?

时间:2017-03-09 16:08:55

标签: android bluetooth bluetooth-lowenergy rssi

我现在正专注于Android,但我相信这些问题的答案适用于任何操作系统,他们只会使用不同的功能来获取数据。

一旦我建立了BLE连接,我就可以将BluetoothGatt.readRemoteRssi()发送到“为连接的远程设备读取RSSI。”

第一个问题:我是否正确理解了这个功能,它向我回复了我的Android设备正在接收的信号强度(从远程BLE设备传输),对吧?我认为这是函数名称让我失望,不应该只是readRssi()的名称? readRemoteRssi()让我觉得在某个地方有一个伴随函数readLocalRssi()。

第二个问题:假设我正确理解了这个功能,蓝牙内置了什么东西让我问“远程BLE设备对RSSI的看法是什么?”换句话说,在Android设备正在传输的信号中,有多少是到达远程BLE设备的?

稍后添加

基于我得到的答案,显然我并没有很好地解释自己。让我再试一次。

远程BLE设备正以一定的功率进行传输,这些无线电波向各个方向传播,其中一些波由我的移动设备接收。我的移动设备测量这些波的强度,并报告为RSSI。 RSSI代表“接收信号强度指示器”,因为它是正在进行接收的本地移动设备,所以将功能命名为“远程”似乎很奇怪。当然,RSSI测量来自远程发射器的东西 - 否则它不会非常有用。

类似地,移动设备以一定功率进行发送,并且这些无线电波在所有方向上向外跳跃,并且这些无线电波中的一些由远程BLE设备接收。那个远程BLE设备测量那些波的强度,那将是他的 RSSI。我的第二个问题是询问蓝牙标准中是否存在任何内容(预定义的特性,例如“电池电量”),让我可以让移动设备查询远程BLE设备并询问“嘿老兄,你得到了多少信号?” / p>

1 个答案:

答案 0 :(得分:-1)

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?

实际上,rssi是根据从远程设备接收的广告包通过ble chip计算的。我们不直接从远程设备获取rssi值。

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

没有。我们实际上正在阅读远程设备的rssi。

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

没有这样的方法,因为在当前设备所连接的另一端确定了rssi。

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?

是rssi。它是根据收到的针对总数据包的广告数据包的数量来计算的。

注意:根据我的经验,我的一些答案是我的猜测。