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

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


zq.
Posts: 71

zq. 2024年 Feb 26日 10:32

验证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事件

tkl_ble_gap_conn_param_update也没看到被调用,上面的param.ble_event.connect.peer.conn_handle是有值的,对应我这里是1


Tags:
zq.
Posts: 71

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

zq. 2024年 Feb 26日 10:33
zq. 2024年 Feb 26日 10:32

验证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事件

tkl_ble_gap_conn_param_update也没看到被调用,上面的param.ble_event.connect.peer.conn_handle是有值的,对应我这里是1

sdk初始化方式是这样的
TUYA_IPC_LINK_TYPE_E link_type = TUYA_IPC_LINK_WIFI | TUYA_IPC_LINK_WIRE | TUYA_IPC_LINK_BT;
tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_NETCFG);
ipc_sdk_run_var.net_info.connect_mode = PARING_MODE_WIFI_AP;
ipc_sdk_run_var.net_info.link_type = link_type;

zq.
Posts: 71

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

郭老庄 2024年 Feb 22日 16:25
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 开发框架

老哥记得看一下上面的问题,卡住了

郭老庄
Posts: 195

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

你好,我们提供的demo是独立运行的,不要和libtuyaos.a放一起使用,两者逻辑会冲突。
如果demo验证没问题,再把tkl合入你的代码

zq.
Posts: 71

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

demo中
tkl_ble_common_char[TAL_COMMON_READ_CHAR_INDEX].handle
tkl_ble_common_char[TAL_COMMON_NOTIFY_CHAR_INDEX].handle
tkl_ble_common_char[TAL_COMMON_READ_CHAR_INDEX].handle
都是TKL_BLE_GATT_INVALID_HANDLE会导致实际动作如tal_ble_server_common_read_update被拦截,这块我手动改掉这几个值吗?另外在实际程序中我要通过哪些方式把这几个char的handle给改掉呢

Attachments
EAFF4DD9-F429-4b09-847E-6FBC4356C6E2.png
CB07921A-E001-4658-8FB8-87DC8FA8AC83.png
zq.
Posts: 71

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

固件端已经可以达到demo中要求的效果了,接下来应该如何操作呢。另外上面那个handle的问题麻烦确认下

Attachments
IMG_2999.PNG.JPG
郭老庄
Posts: 195

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

handle是通过tkl_ble_gatts_service_add 赋值的。如果demo运行没问题,可以把tkl_ble_xxx合入你的工程里

zq.
Posts: 71

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

移植进工程,service对应的是libtuyaos.a下发调用的吧,我这边打印出来的对应的三个char的handle都是FFFF,如果tuyaos里面的数据发送更新等接口和demo一样,那应该是会被如下判断语句 if (tkl_ble_common_connect_handle != TKL_BLE_GATT_INVALID_HANDLE
&& tkl_ble_common_char[TAL_COMMON_NOTIFY_CHAR_INDEX].handle != TKL_BLE_GATT_INVALID_HANDLE)拦截的 ,我这边写demo的时候是手动改的服务中的handle才能跑下去。
如果一切都正常启动设备进入app应该是可以自动检索扫描到设备然后快速进入添加流程的吧,我现在搜不到不确定问题可能在哪里。

Attachments
53B0670F-3DF6-4c10-8252-A181A55667D8.png
592A64B2-8891-421f-A210-6FC90F3178EE.png
郭老庄
Posts: 195

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

我没太理解你的问题。handle是通过tkl_ble_gatts_service_add赋值的,为什么要手动赋值?

zq.
Posts: 71

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

(1)我当前理解的tkl_ble_gatts_service_add服务是libtuyaos.a调用的,由此对应的handle也是由libtuyaos.a下发的吧,当前我这视角看到的libtuyaos.a下发的三个char中的handle都是invalue_handle,这是不是不正常?

Last edited by zq. on 2024年 Feb 26日 20:49, edited 1 time in total.
Post Reply