求助,蓝牙配网失败

IPC/NVR/可视门铃等具备多媒体能力的设备,扫地机/AGV等机器人设备


郭老庄
Posts: 236

gf:ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX] = 0 这个值异常
正常情况下,sdk收到TAL_BLE_EVT_PERIPHERAL_CONNECT事件后,会更新ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX]的值。之前你给我的日志来看,并没有通知sdk TAL_BLE_EVT_PERIPHERAL_CONNECT事件


Tags:
cxl
Posts: 10

Re: 求助,蓝牙配网失败

郭老庄 2025年 Apr 3日 14:41

gf:ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX] = 0 这个值异常
正常情况下,sdk收到TAL_BLE_EVT_PERIPHERAL_CONNECT事件后,会更新ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX]的值。之前你给我的日志来看,并没有通知sdk TAL_BLE_EVT_PERIPHERAL_CONNECT事件

确认到这个同步问题了,现在这一步走通了,但是遇到了新的问题,配网时数据发送后看到有报错[01-01 00:07:04 ty E][db84][tuya_ble_data_handler.c:708] ble recv data len err:17770,目前不确定什么问题,看有走到tkl_ble_gatts_value_notify并成功返回;而我用NRF工具测试也会报错[01-01 00:18:35 ty E][db84][tuya_ble_data_handler.c:660] ble_data_unpack err:-7937

Attachments
蓝牙配网202504031728.log
(100.79 KiB) Downloaded 8 times
郭老庄
Posts: 236

Re: 求助,蓝牙配网失败

cxl 2025年 Apr 3日 17:31
郭老庄 2025年 Apr 3日 14:41

gf:ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX] = 0 这个值异常
正常情况下,sdk收到TAL_BLE_EVT_PERIPHERAL_CONNECT事件后,会更新ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX]的值。之前你给我的日志来看,并没有通知sdk TAL_BLE_EVT_PERIPHERAL_CONNECT事件

确认到这个同步问题了,现在这一步走通了,但是遇到了新的问题,配网时数据发送后看到有报错[01-01 00:07:04 ty E][db84][tuya_ble_data_handler.c:708] ble recv data len err:17770,目前不确定什么问题,看有走到tkl_ble_gatts_value_notify并成功返回;而我用NRF工具测试也会报错[01-01 00:18:35 ty E][db84][tuya_ble_data_handler.c:660] ble_data_unpack err:-7937

首先,用NRF工具测试报错是正常的,nrf发送的格式不符合我们的协议
从日志上分析,可能有两处问题
第一:设备收到第一条数据和第二条数据的时间差是10s,这个应该是走到了APP超时逻辑。即:如果APP发送一条数据后,设备超过10s未回复或者回复有问题,10s后,APP会发送重置命令。
从第一条数据的接收来看,sdk能正常解析,所以第一条数据的接收是正常的。因此要关注一下发送的功能是否正常。
第二:设备收到第二条数据解析出错,说明第二条数据接收是异常的。具体原因需要你再看看。

cxl
Posts: 10

Re: 求助,蓝牙配网失败

郭老庄 2025年 Apr 3日 18:07
cxl 2025年 Apr 3日 17:31
郭老庄 2025年 Apr 3日 14:41

gf:ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX] = 0 这个值异常
正常情况下,sdk收到TAL_BLE_EVT_PERIPHERAL_CONNECT事件后,会更新ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX]的值。之前你给我的日志来看,并没有通知sdk TAL_BLE_EVT_PERIPHERAL_CONNECT事件

确认到这个同步问题了,现在这一步走通了,但是遇到了新的问题,配网时数据发送后看到有报错[01-01 00:07:04 ty E][db84][tuya_ble_data_handler.c:708] ble recv data len err:17770,目前不确定什么问题,看有走到tkl_ble_gatts_value_notify并成功返回;而我用NRF工具测试也会报错[01-01 00:18:35 ty E][db84][tuya_ble_data_handler.c:660] ble_data_unpack err:-7937

首先,用NRF工具测试报错是正常的,nrf发送的格式不符合我们的协议
从日志上分析,可能有两处问题
第一:设备收到第一条数据和第二条数据的时间差是10s,这个应该是走到了APP超时逻辑。即:如果APP发送一条数据后,设备超过10s未回复或者回复有问题,10s后,APP会发送重置命令。
从第一条数据的接收来看,sdk能正常解析,所以第一条数据的接收是正常的。因此要关注一下发送的功能是否正常。
第二:设备收到第二条数据解析出错,说明第二条数据接收是异常的。具体原因需要你再看看。

[ble_svc_gatt_access:225] ctxt->chr->flags:0xc
max_data_len=1024
Len=20
att=0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9
[ble_svc_gatt_access:259]send gatt event type:7 (TKL_BLE_GATT_EVT_WRITE_REQ)
[ble_svc_gatt_access:260]event.gatt_event.write_report.char_handle :1
gf:p_event->ble_event.write_report.peer.char_handle[0] = 1
gf:ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX] = 1
[01-01 00:01:42 ty D][e574][tuya_ble_svc.c:1115] rev ble event 14
[01-01 00:01:42 ty D][e574][tuya_ble_svc.c:1076] Dev Rev BT Package
[01-01 00:01:42 ty D][e574][tuya_ble_svc.c:115] bt_rev_raw 20 <0x62e56868>
00 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 07 08 09

[01-01 00:01:42 ty D][e574][tuya_ble_data_handler.c:142] recive sub_pkg desc:3, no:1, pack_len:1, total_len:1
[01-01 00:01:42 ty E][e574][tuya_ble_data_handler.c:672] ty_ble_rx_proc version not compatibility!

这里看log出现版本不兼容?

Attachments
蓝牙配网202504071016.log
(78.11 KiB) Downloaded 7 times
cxl
Posts: 10

Re: 求助,蓝牙配网失败

cxl 2025年 Apr 7日 10:16
郭老庄 2025年 Apr 3日 18:07
cxl 2025年 Apr 3日 17:31

确认到这个同步问题了,现在这一步走通了,但是遇到了新的问题,配网时数据发送后看到有报错[01-01 00:07:04 ty E][db84][tuya_ble_data_handler.c:708] ble recv data len err:17770,目前不确定什么问题,看有走到tkl_ble_gatts_value_notify并成功返回;而我用NRF工具测试也会报错[01-01 00:18:35 ty E][db84][tuya_ble_data_handler.c:660] ble_data_unpack err:-7937

首先,用NRF工具测试报错是正常的,nrf发送的格式不符合我们的协议
从日志上分析,可能有两处问题
第一:设备收到第一条数据和第二条数据的时间差是10s,这个应该是走到了APP超时逻辑。即:如果APP发送一条数据后,设备超过10s未回复或者回复有问题,10s后,APP会发送重置命令。
从第一条数据的接收来看,sdk能正常解析,所以第一条数据的接收是正常的。因此要关注一下发送的功能是否正常。
第二:设备收到第二条数据解析出错,说明第二条数据接收是异常的。具体原因需要你再看看。

[ble_svc_gatt_access:225] ctxt->chr->flags:0xc
max_data_len=1024
Len=20
att=0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9
[ble_svc_gatt_access:259]send gatt event type:7 (TKL_BLE_GATT_EVT_WRITE_REQ)
[ble_svc_gatt_access:260]event.gatt_event.write_report.char_handle :1
gf:p_event->ble_event.write_report.peer.char_handle[0] = 1
gf:ble_peripheral_info.char_handle[TAL_COMMON_WRITE_CHAR_INDEX] = 1
[01-01 00:01:42 ty D][e574][tuya_ble_svc.c:1115] rev ble event 14
[01-01 00:01:42 ty D][e574][tuya_ble_svc.c:1076] Dev Rev BT Package
[01-01 00:01:42 ty D][e574][tuya_ble_svc.c:115] bt_rev_raw 20 <0x62e56868>
00 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 07 08 09

[01-01 00:01:42 ty D][e574][tuya_ble_data_handler.c:142] recive sub_pkg desc:3, no:1, pack_len:1, total_len:1
[01-01 00:01:42 ty E][e574][tuya_ble_data_handler.c:672] ty_ble_rx_proc version not compatibility!

这里看log出现版本不兼容?

这个是我的问题,用NRF测试引起的,目前蓝牙配网可以了,感谢支持

Post Reply