自定义DP 是否支持多DP聚合上报?

Zigbee 子设备开发


Post Reply
vigny
Posts: 7

您好,请问下,自定义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;
shiliang
Posts: 35

Re: 自定义DP 是否支持多DP聚合上报?

标准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;
shiliang
Posts: 35

Re: 自定义DP 是否支持多DP聚合上报?

如果上述所说的自定义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个

vigny
Posts: 7

Re: 自定义DP 是否支持多DP聚合上报?

是的,是大于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*/

shiliang
Posts: 35

Re: 自定义DP 是否支持多DP聚合上报?

data[0] data[1]需要填充seq(uint16),后续数据按照dp格式上报,dp id(1 字节),dp type(1字节),dp length(2字节),dp value(N字节,实际字节数根据dp length)。

Post Reply