TuyaOS版本:3.9.0
组件开发包:tuyaos-subdev-bt_3.9.0_nrf52832_ble_ble-common_1.0.3
问题:请问如何获取蓝牙信号强度RSSI?我直接使用这个接口:sd_ble_gap_rssi_get(uint16_t conn_handle, int8_t *p_rssi, uint8_t *p_ch_index)来获取信号强度,正常来说调用这个接口之后,返回的信号强度值应该会保存在参数p_rssi里吧?但我获取到的p_rssi值一直是0。
【求助】【TuyaOS】信号强度问题
-
- Posts: 36
【求助】【TuyaOS】信号强度问题
Re: 【求助】【TuyaOS】信号强度问题
如果是获取连接阶段的信号强度,使用sd_ble_gap_rssi_get接口之前要调用sd_ble_gap_rssi_start接口,详见官方API说明:
-
- Posts: 36
Re: 【求助】【TuyaOS】信号强度问题
我是想要在手机和设备连接之后获取信号强度。此外,我更换了获取信号强度的接口为tal_ble_rssi_get,然后也能正常收到SDK回调事件了,但是,如果能成功获取信号强度,rssi的值会保存在p_event->ble_event.link_rssi.rssi里,结果我还是没有获取到。我还有一个疑问就是:我看定义rssi是一个char型的数据,rssi需要做什么转换吗?比如rssi的值和信号强度之间的转换。
Re: 【求助】【TuyaOS】信号强度问题
“TuyaOS版本:3.9.0”并没有完全实现tal_ble_rssi_get,请直接使用原厂接口sd_ble_gap_rssi_get,使用之前要调用sd_ble_gap_rssi_start接口,详见官方API说明:
-
- Posts: 36
Re: 【求助】【TuyaOS】信号强度问题
逻辑的院子 2024年 May 13日 16:40“TuyaOS版本:3.9.0”并没有完全实现tal_ble_rssi_get,请直接使用原厂接口sd_ble_gap_rssi_get,使用之前要调用sd_ble_gap_rssi_start接口,详见官方API说明:
Snipaste_2024-05-13_16-18-54.jpg
可以获取到RSSI值了,但还是有个问题就是:我在TAL_BLE_EVT_CONN_RSSI事件回调函数里打印rssi的值是正的,但在自己的函数里调用sd_ble_gap_rssi_get函数,打印参数返回的rssi是负的,请问这是为什么呢?该以哪个为准呢?
-
- Posts: 36
Re: 【求助】【TuyaOS】信号强度问题
如下图,两个值是不一样的,正负值相差很大。
Re: 【求助】【TuyaOS】信号强度问题
您仔细考虑一下负值在C语言中的定义。
举个例子比较好理解:
-1 = 0xFF = 255
-2 = 0xFE = 254
……
-
- Posts: 36
Re: 【求助】【TuyaOS】信号强度问题
好的,刚刚没反应过来。还有个问题就是,RSSI值和信号强度等级之间的转换呢?比如:RSSI=215时,它对应的信号强度等级如何转换呢?