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

问题描述:

我现在专注于Android,但我相信这些问题的答案适用于任何操作系统,他们只会使用不同的功能来获取数据。蓝牙低功耗 - 双方获得RSSI?

建立BLE连接后,我可以将BluetoothGatt.readRemoteRssi()设置为“读取连接的远程设备的RSSI”。

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

第二个问题:假设我正确理解功能,是否有任何内置于蓝牙的内容可以让我问“远程BLE设备看到RSSI是什么?”换句话说,Android设备正在传输的信号中,有多少到达远程BLE设备?

根据我得到的答案LATER

补充说,显然我没有解释自己很好。让我再尝试一次。

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

类似地,移动设备以特定功率进行发送,并且这些无线电波向全方位发出,并且这些无线电波中的一些被远程BLE设备接收。那个远程BLE设备测量那些波浪的强度,那将是他的 RSSI的。我的第二个问题是询问蓝牙标准中是否有任何东西(预定义的特征,例如像“电池电量”),让我的移动设备查询远程BLE设备并询问“嘿,伙计,你得到了多少信号?

+0

rssi与远程设备的连接启动并运行时如何工作?你的用例是什么? – 7383

+0

我希望能够向用户显示信号强度,以便他们可以判断他们是否开始远离远程设备。我认为在我开始看到数据包丢失和其他故障之前,信号强度会给我一个很长的指示。 –

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芯片计算出来的。我们不直接从远程设备获取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。它是根据接收的总数据包数量来计算的。

注:我的一些答案是根据我的经验得出的。

+0

请指定-1的原因 – 7383

+0

感谢您加入并尝试提供帮助,但我依靠*获得明确答案,而不是猜测。 –

+0

确定没有问题。我来堆栈溢出的一些指针而不是明确的答案。我们每个人都有自己的思考过程。如果我没有提到这个答案是我的猜测,我不会得到-1。那么我不介意在这里丢失点,但我相信我的大部分答案都是正确的,并以某种方式帮助人们进一步研究它。 – 7383