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

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


zq.
Posts: 71

另外我发现tkl_ble_gattc_exchange_mtu_request也没被调用呀,看demo有个mtu拦截,
if (client_mtu < 23 || client_mtu > 247) {
return OPRT_INVALID_PARM;
}
怀疑是被这里拦截住了,但为啥会被拦截呢?这个数值传递的话对应你们demo是写死的。设备端也没法回传的样子


Tags:
郭老庄
Posts: 195

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

zq. 2024年 Feb 27日 16:56

添加过程中,发现一个必现的段错误,麻烦帮忙分析下,以下是coredump.

之前不是已经通了?又改了什么导致段错误的

zq.
Posts: 71

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

通是可以通,就是会挂,设备还是能添加上的。 :o 。。。必现的问题应该好查,麻烦大佬帮忙看下

zq.
Posts: 71

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

另外有时候会看到这个打印[08-21 12:06:18 ty D][tuya_ble_svc.c:918] device no permit to connect, disconect!!导致蓝牙断连,这个打印出现的时候是什么原因呢?

zq.
Posts: 71

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

挂死的原因目前看和tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_NETCFG);这个语句高度相关,注释了就正常了。。这设置不能用吗?

郭老庄
Posts: 195

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

zq. 2024年 Feb 27日 19:52

挂死的原因目前看和tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_NETCFG);这个语句高度相关,注释了就正常了。。这设置不能用吗?

这个接口不用调,sdk内部已经处理好了。不过正常来说你调tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_NETCFG);也不会崩溃

zq.
Posts: 71

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

(1)不调用的话,我看stack deinit不会被调用,我这边述求是比如mqtt上线了,我就把我这边蓝牙退掉.或者说我这边自己找个地方执行卸载函数?另外挂死的原因你看看可能是啥原因呗,我是看你们网站的提示设置的。

(2)mtu的问题帮忙看下,在demo中tal_ble_client_exchange_mtu_request(ble_peripheral_info, 247)会被执行,我这边会由此将247拿去做exchange mtu,但合入os.a里面没看到这个语句被执行,另外tal_ble_server_common_read_update以及tal_ble_conn_param_update也都没被调用,是流程不一样吗,还是这三个语句实际只是演示流程可以不用管?

(3)sdk调用notify给app回数据的最大长度是不是通过设备上报的TKL_BLE_GATT_EVT_MTU_RSP带的mtu决定的。我这边需要确定这个细节,因为发超了我这边会异常。

zq.
Posts: 71

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

另外网站上提到的建议5和建议6怎么实现呢?
我记得老版本sdk在配网失败后,一定要重启设备才行,现在6.x的sdk能够通过哪些方式重置进入配网阶段吗?
再者通过蓝牙的方式怎么告知app配网失败了呢?

Attachments
1162DB05-17DE-486f-AB1C-D41D573869CD.png
郭老庄
Posts: 195

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

崩溃的问题,检查一下stack deinit接口。因为如果设置了tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_NETCFG); 会调用到stack deinit

zq.
Posts: 71

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

stack deinit我这个现在是空实现,就打印了个语句。
OPERATE_RET tkl_ble_stack_deinit(UCHAR_T role)
{
// --- BEGIN: user implements ---
printf( "%s %d role %d\n", func, LINE, role );
return OPRT_OK;
// --- END: user implements ---
}
上面的mtu也看下呀

Post Reply