Page 1 of 1
自定义DP 是否支持多DP聚合上报?
Posted: 2024年 Aug 26日 14:45
by vigny
您好,请问下,自定义DP是否支持聚合上报,我观察到标准dp 最多支持8个一起上报。 自定义dp能否在private.data[] 中上报多个dp?
typedef struct {
UINT8_T attr_sum; ///< attribute number
TAL_ATTR_VALUE_T attr[8]; ///< attribute instantiation
} TAL_ZG_DATA_T;
/**
- @enum zigbee private data(include command data)
*/
typedef struct {
UINT8_T len; ///< data length
UINT8_T data[64]; ///< data buff
} TAL_PRIVATE_DATA_T;
Re: 自定义DP 是否支持多DP聚合上报?
Posted: 2024年 Aug 26日 14:57
by shiliang
标准dp或者私有dp,只要是属性类的数据,都可以使用
typedef struct {
UINT8_T attr_sum; ///< attribute number
TAL_ATTR_VALUE_T attr[8]; ///< attribute instantiation
} TAL_ZG_DATA_T;
如果是命令类的数据,才需要使用:
/**
- @enum zigbee private data(include command data)
*/
typedef struct {
UINT8_T len; ///< data length
UINT8_T data[64]; ///< data buff
} TAL_PRIVATE_DATA_T;
Re: 自定义DP 是否支持多DP聚合上报?
Posted: 2024年 Aug 26日 15:01
by shiliang
如果上述所说的自定义DP为IOT前台,大于100的DP,走透传通道的,可以使用
/**
@enum zigbee private data(include command data)
*/
typedef struct {
UINT8_T len; ///< data length
UINT8_T data[64]; ///< data buff
} TAL_PRIVATE_DATA_T;
可多个DP一起上报,data部分总长度不能超过64,并且dp数量不能超过10个
Re: 自定义DP 是否支持多DP聚合上报?
Posted: 2024年 Aug 26日 15:19
by vigny
是的,是大于100,走透传通道的dp。
我观察到demo 里, data[0], data[1] 没填, 这2个字节作用是什么? 如果聚合上报的话,第2个dp的前2个字节(即下述例子的 data[7] data[8]),是否也要跳过
send_data.data.private.len = 7;
send_data.data.private.data[2] = 101; /* DP id/
send_data.data.private.data[3] = ATTR_ENUM8_ATTRIBUTE_TYPE; /DP type/
send_data.data.private.data[4] = 0x00;
send_data.data.private.data[5] = 0x01;/DP len/
send_data.data.private.data[6] = day_up_down_change_flag; /DP data*/
Re: 自定义DP 是否支持多DP聚合上报?
Posted: 2024年 Aug 26日 15:24
by shiliang
data[0] data[1]需要填充seq(uint16),后续数据按照dp格式上报,dp id(1 字节),dp type(1字节),dp length(2字节),dp value(N字节,实际字节数根据dp length)。