Page 1 of 1

【已解决】【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 8日 20:07
by 19926824531

问题现象:设备端初始化蓝牙协议栈,并打开广播后,APP扫描不到蓝牙设备
麻烦帮忙看下

Notes:

  1. 开发包全称:tuyaos-ipc_6.1.0_T23_uclibc_linux_fs_0.0.5.tar.gz

  2. 实现方式:
    (1) 基于蓝牙nimble协议栈
    (2) 参考 tuya蓝牙配网的开发指导,适配了tkl_bluetooth.c中的一些用得到的接口,实现蓝牙配网
    (3) tuya参考文档链接:
    https://developer.tuya.com/cn/docs/iot- ... 9rxpu0qqfx

  3. 问题分析:
    (1)设备端SDK初始化后,tkl_ble的这些接口依次被调用, 从而初始化设备端nimble协议栈,并打开设备端蓝牙广播
    tkl_ble_gap_callback_register
    tkl_ble_gatt_callback_register
    tkl_ble_stack_init => role: 3
    tkl_ble_gatts_service_add => uuid: 0xfd50
    tkl_ble_gap_adv_start

(2)APP点击开始扫描设备设备时,tkl_ble没有其他接口被调用, tuyaOS sdK没有看到蓝牙相关打印. nimble协议栈也没有设备来连接的打印。
(3)用BLE调试助手APP可以搜索并连接到这个蓝牙设备,广播信息以及gatts_service 特征值uuid都是符合tuya规范的
(4)附件是对应的设备端log,以及BLE调试助手APP 中这个蓝牙设备对应的信息


Re: 【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 9日 10:03
by 郭老庄

正常来说广播数据是sdk设置的,你的广播数据像是自己写死的,所以APP扫不到


Re: 【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 9日 10:08
by 19926824531

我看tkl_ble_gap_adv_rsp_data_set接口没有被调用,
我就根据 tal_ble_peripheral_test.c demo中的广播数据(adv_data_const 和 scan_rsp_data_const)写死了


Re: 【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 9日 10:14
by 19926824531

Re: 【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 9日 15:35
by 19926824531

麻烦帮忙看下为啥SDK为啥没有下发设置广播数据。问题已经卡了好久了


Re: 【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 9日 20:04
by 19926824531

之前tkl_ble_stack_init接口中没有调用gap回调上报协议栈初始化状态,修改之后,SDK有下发广播数据,_ble_gap_adv_rsp_data_set接口有被调用了。
然后设备端按要求设置广播信息后 ,但是APP还是扫描不到蓝牙设备


Re: 【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 11日 09:15
by 郭老庄

你好,广播包的数据发了两遍,麻烦检查一下广播包


Re: 【TuyaOS 3.9.0 SDK】蓝牙配网,设备端开始广播后,APP扫描不到蓝牙设备

Posted: 2024年 May 11日 10:29
by 19926824531

问题已解决