Page 1 of 2
【已解决】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 15日 14:19
by sandia
1)开发包全名:tuyaos-subdev-bt_3.8.3_phy6222_ble_ble-common_1.0.0.tar;
2)问题现象:在软件定时里面每隔1s上报5个不同DP数据,由于五次上报的时间大于定时器执行的时间,会导致定时器定时时间延迟。调用上报函数执行时间过长加上多次上报导致时间不够了,有没有打包上报的方式去固定的上报某些DP?
3)复现流程:开一个1s定时器多次上报即可复现;
4)发生时间:
5)App相关:智慧出行5.4.0,iPhone12
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 15日 14:23
by 逻辑的院子
DP上报接口都支持多个DP同时上报,按照dp_id、dp_type、dp_data_len、dp_data_value的格式组成数组传入到接口中即可
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 10:39
by sandia
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 10:42
by 逻辑的院子
协议中超过两个字节的数据单元都是按照大端结构传输的,这个函数的作用就是转换字节序,使之符合大端结构
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 10:46
by sandia
明白,那我批量上报的话,每个DP的dp_data_len都要这样转换一次是吗,另外下面那个长度怎么填?是填总长度?
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 11:02
by 逻辑的院子
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 11:12
by sandia
这个长度需要+4嘛?还是说填sizeof(dp_report_data)这个数组的总长度就行?
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 11:21
by 逻辑的院子
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 11:59
by sandia
总长度的话,一个dp_data的长度就600了,5个的话是超过了总上报长度的,后面我把这个结构体的dp_data[600]改成dp_data[5]后上报,但是是没有效果的,以下是函数整体跟log,麻烦帮我看看
Re: 【求助】【tuyaOS】蓝牙批量上报问题
Posted: 2023年 Nov 16日 14:04
by 逻辑的院子
考虑到RAM的限制,目前DP点最大的总长度支持到507字节(1个/多个DP点),因为推荐的DP点一般只有几个字节或几十个字节。
如果您一个dp_data的长度就600字节,这么大的数据量是不适合使用DP点的格式进行上报的,您可以描述下您的需求吗?为什么一个DP点要有600字节这么多的数据?