【已解决】[Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

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


zq.
Posts: 71

请问有没有涉及ble demo可以看一下,我看压缩包里面的tkl_bluetooth.c基本都是要求自实现的。


Tags:
郭老庄
Posts: 135

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

zq.
Posts: 71

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

压缩包里面tal_bluetooth.c就是模拟sdk会以类似的实现方式调用tkl_bluetooth.c中待实现的接口,然后需要我们需要负责实现tkl_bluetooth.c对应的接口吗?

郭老庄
Posts: 135

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

是的

zq.
Posts: 71

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

TAL_BLE_SERVICE_VERSION == 2是新版本的服务,我以前接的老的sdk,记得对应的V1, 老的app支持吗,请问有没有什么风险,有风险的话我仍用老的服务

zq.
Posts: 71

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

另外有一点,我看你们服务里面发送用的notify,为啥不选择用indicate, indicate不是还自带丢包重发吗,效果是不是会更好呢。

郭老庄
Posts: 135

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

  1. version=2 三年前就有了
  2. 使用场景不一样,我们每一笔notification都有对应的client回复,控制在自己手上,而不是交给协议占用额外的带宽去回复
zq.
Posts: 71

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

郭老庄 2024年 Feb 22日 09:57

是的

我这边移植的时候看到的现象是tkl_ble_stack_init有被调用,tkl_ble_gap_adv_start有被调用,但是在这中间的应该被调用的tal_ble_advertising_data_set没被调用,这个函数反而是在连上网后set gw ext_stat:2被调用,不知道是哪里初始化存在问题,我们这边当前被蓝牙的述求是仅仅在配网阶段开启,配网结束后即关闭。

Attachments
COM19_2024-02-22_15-40-07.log
(149.09 KiB) Downloaded 52 times
郭老庄
Posts: 135

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

zq. 2024年 Feb 22日 15:41
郭老庄 2024年 Feb 22日 09:57

是的

我这边移植的时候看到的现象是tkl_ble_stack_init有被调用,tkl_ble_gap_adv_start有被调用,但是在这中间的应该被调用的tal_ble_advertising_data_set没被调用,这个函数反而是在连上网后set gw ext_stat:2被调用,不知道是哪里初始化存在问题,我们这边当前被蓝牙的述求是仅仅在配网阶段开启,配网结束后即关闭。

建议参考 https://developer.tuya.com/cn/docs/iot- ... 9vq9pubeja
先验证 Peripheral 通道可行性,再把tkl合入IPC 开发框架

zq.
Posts: 71

Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题

验证Peripheral 通道可行性时候,发现执行
TAL_BLE_EVT_PARAMS_T param;
memset(&param, 0, sizeof(param));
param.type = TAL_BLE_STACK_INIT;
param.ble_event.init = 0;
printf("atbm stack init\n");
TKL_BLE_GAP_EVT_FUNC_CB(&param);上报TAL_BLE_STACK_INIT
符合预期,对应的回调都正常,但是执行
TAL_BLE_EVT_PARAMS_T param;
memset(&param, 0, sizeof(param));
param.ble_event.connect.result = 0;
param.type = TAL_BLE_EVT_PERIPHERAL_CONNECT;
param.ble_event.connect.peer.conn_handle = ble_conn_handle;
printf("atbm gap connect\n");
param.ble_event.connect.peer.char_handle[TAL_COMMON_WRITE_CHAR_INDEX] = 2;
param.ble_event.connect.peer.char_handle[TAL_COMMON_NOTIFY_CHAR_INDEX] = 3;
param.ble_event.connect.peer.char_handle[TAL_COMMON_READ_CHAR_INDEX] = 4;
TKL_BLE_GAP_EVT_FUNC_CB(&param);没有被调用,因为没看到tkl_ble_gatts_value_set以及被调用,可能是什么原因。
日志400行对应stack_init时间,533对应上抛connect事件

Attachments
COM19_2024-02-26_10-23-50.log
(54.05 KiB) Downloaded 53 times
Post Reply