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

1. 厂商扩展

        zcl支持开发厂商在遵循zcl基本规范的基础上扩展每个厂商特有的内容,包含簇、簇特有的命令和属性。这个通常是很有用的,因为厂商在实现的时候总会有不一样的特色功能。

    属于扩展内容的消息都需要将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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值