另外我发现tkl_ble_gattc_exchange_mtu_request也没被调用呀,看demo有个mtu拦截,
if (client_mtu < 23 || client_mtu > 247) {
return OPRT_INVALID_PARM;
}
怀疑是被这里拦截住了,但为啥会被拦截呢?这个数值传递的话对应你们demo是写死的。设备端也没法回传的样子
【已解决】[Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题
Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题
Tags:
Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题
之前不是已经通了?又改了什么导致段错误的
Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题
通是可以通,就是会挂,设备还是能添加上的。 。。。必现的问题应该好查,麻烦大佬帮忙看下
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!!导致蓝牙断连,这个打印出现的时候是什么原因呢?
Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题
挂死的原因目前看和tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_NETCFG);这个语句高度相关,注释了就正常了。。这设置不能用吗?
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);也不会崩溃
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决定的。我这边需要确定这个细节,因为发超了我这边会异常。
Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题
另外网站上提到的建议5和建议6怎么实现呢?
我记得老版本sdk在配网失败后,一定要重启设备才行,现在6.x的sdk能够通过哪些方式重置进入配网阶段吗?
再者通过蓝牙的方式怎么告知app配网失败了呢?
- Attachments
-
Re: [Tuya OS SDK] 初次适配TuyaOS V:6.1.0 蓝牙配网问题
崩溃的问题,检查一下stack deinit接口。因为如果设置了tuya_ble_set_startup_attr(TUYA_BLE_ABILITY_NETCFG); 会调用到stack deinit
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也看下呀