【已解决】【tuyaOS】蓝牙批量上报问题

蓝牙 BLE设备、蓝牙 MESH设备、蓝牙 Beacon设备、Sub-G设备等


sandia
Posts: 61

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

Last edited by sandia on 2023年 Nov 16日 16:08, edited 1 time in total.
User avatar
逻辑的院子
Posts: 220
Contact:

Re: 【求助】【tuyaOS】蓝牙批量上报问题

DP上报接口都支持多个DP同时上报,按照dp_id、dp_type、dp_data_len、dp_data_value的格式组成数组传入到接口中即可

sandia
Posts: 61

Re: 【求助】【tuyaOS】蓝牙批量上报问题

上报的长度需要怎么填?这个函数作用是什么?

DP_report.png
User avatar
逻辑的院子
Posts: 220
Contact:

Re: 【求助】【tuyaOS】蓝牙批量上报问题

协议中超过两个字节的数据单元都是按照大端结构传输的,这个函数的作用就是转换字节序,使之符合大端结构

sandia
Posts: 61

Re: 【求助】【tuyaOS】蓝牙批量上报问题

明白,那我批量上报的话,每个DP的dp_data_len都要这样转换一次是吗,另外下面那个长度怎么填?是填总长度?

sandia
Posts: 61

Re: 【求助】【tuyaOS】蓝牙批量上报问题

这个长度需要+4嘛?还是说填sizeof(dp_report_data)这个数组的总长度就行?

批量上报.png
sandia
Posts: 61

Re: 【求助】【tuyaOS】蓝牙批量上报问题

总长度的话,一个dp_data的长度就600了,5个的话是超过了总上报长度的,后面我把这个结构体的dp_data[600]改成dp_data[5]后上报,但是是没有效果的,以下是函数整体跟log,麻烦帮我看看

长度不对.png
log.png
User avatar
逻辑的院子
Posts: 220
Contact:

Re: 【求助】【tuyaOS】蓝牙批量上报问题

考虑到RAM的限制,目前DP点最大的总长度支持到507字节(1个/多个DP点),因为推荐的DP点一般只有几个字节或几十个字节。
如果您一个dp_data的长度就600字节,这么大的数据量是不适合使用DP点的格式进行上报的,您可以描述下您的需求吗?为什么一个DP点要有600字节这么多的数据?

Post Reply