NXP

zigbee zcl如何扩展cluster、扩展命令、扩展属性

2019-07-12 13:08发布

1. 厂商扩展

        zcl支持开发厂商在遵循zcl基本规范的基础上扩展每个厂商特有的内容,包含簇、簇特有的命令和属性。这个通常是很有用的,因为厂商在实现的时候总会有不一样的特 {MOD}功能。
    属于扩展内容的消息都需要将zcl帧中ZCL header.Frame control.Manufacturer specific置位,并将ZCL header.Manufacturer code设置为厂商的ID,这个id是要称为zigbee alliance成员才会分配,如果不是成员就“随意”吧。
  zcl帧格式   
        zcl帧Frame control

2. 扩展簇

        zcl预留了0xfc00~0xffff这个范围的簇ID,用于厂商扩展,因此,扩展簇,只需将簇id设置为改范围内的值,并在zcl header增加厂商id即可。对于扩展的簇,必须支持zcl基础命令,如属性读、写、报告等。

3. 扩展命令

         厂商在标准簇基础上扩展命令时,命令id可使用全部8位范围,即0~0xff,厂商只能扩展簇特有命令,不能扩展基础命令。在zcl header中置位Manufacturer specific与提供Manufacturer code就表明该命令属于扩展命令。

4. 扩展属性

        与扩展命令类似,在zcl header中置位Manufacturer specific与提供Manufacturer code就表明当前操作的属性属于扩展属性。扩展属性可使用全部16bit范围,即0~0xffff,属性数据类型必须在zcl标准内支持的。

5. z-stack中扩展

        z-stack中提供的默认zcl属性操作命令不支持扩展内容,需要简单修改一下,在zcl_SendRead中增加一个表示厂商id的参数,并将该参数传递给zcl_SendCommand函数的manuCode参数即可。其他的write、report等命令类似。

转载请注明出处:    https://blog.csdn.net/jason_lm/article/details/80900502