首页 > 编程知识 正文

16. Zigbee应用程序框架开发指南 - 扩展ZigBee Cluster Library (ZCL)

时间:2023-05-04 13:12:00 阅读:76915 作者:4743

1 ZigBee APP应用框架开发指南-概述

2 ZigBee APP应用框架开发指南- APP应用框架结构

3 ZigBee APP应用框架开发指南- APP应用框架的目录结构

4 ZigBee APP应用框架开发指南-生成APP应用配置文件

5 ZigBee APP应用框架开发指南- APP应用框架API

6 ZigBee APP应用框架开发指南- APP应用框架Callback接口

7 ZigBee APP应用框架发展指南-时间处理

8 ZigBee APP应用框架开发指南-事件

9 ZigBee APP应用框架开发指南-属性管理

10 ZigBee APP应用框架开发指南-命令处理和生成

11 ZigBee APP应用框架开发指南-命令行界面(CLI )

12 ZigBee APP应用框架开发指南-调试打印接口

13 ZigBee APP应用框架发展指南-多网支持

14 ZigBee APP应用框架发展指南-睡眠设备

15 ZigBee APP应用框架开发指南-插件APP应用框架

16 ZigBee APP应用框架开发指南-ZigBeeclusterlibrary(zcl )扩展

17 ZigBee APP应用程序框架开发指南使用Ember AppBuilder设计APP应用程序

18 ZigBee APP应用框架开发指南- APP应用框架V6

16扩展ZigBeeclusterlibrary(ZCL ) 16.1介绍了开发人员可以使用以下技术之一扩展ZigBee APP应用层:

Private Profile:配置文件ID是在ZigBee APS框架中的ZigBee消息中传递的2字节值。 两个ZigBee设备必须具有相同的配置文件ID才能在APP应用层上相互作用。 如果没有,它们会删除彼此的消息。 专用配置文件用于完全保护特定系统中的所有交互。 如果您计划在网络层和链路层使用ZigBee,而在其他方面使用封闭系统,则还可以创建专用的ZigBee配置文件。 如果使用专用配置式,则设备无法与使用其他配置式的其他ZigBee设备进行互操作。 具有特定于制造商的Cluster:00xfc00-0xffff范围内的群集id的群集被视为特定于制造商,需要相关的2字节制造商代码。 特定于制造商的集群中的所有命令和属性也被视为特定于制造商。

示例: APP应用程序框架中包含的sample-extensions.xml文件定义了特定于制造商的示例群集。 群集id为0xfc00,制造商代码为0x1002(siliconlabs的制造商代码)。 制造商特定的命令:可以通过将制造商特定的命令添加到标准ZigBee群集来扩展群集。 在标准ZigBee Cluster中,制造商特定的命令可以使用整个命令id范围:0x00 -0xff。 特定于制造商的命令必须包含2字节的制造代码,以便与群集标准ZigBee命令区分开来。

示例: APP应用程序框架中的sample-extensions.xml文件有三个版本: OffWithTransition、OnWithTransition和ToggleWithTransition 但是,它还包含制造商代码0x1002,表示这是Silicon Labs的制造商特定命令。 制造商特定的属性:可以通过将制造商特定的属性添加到APP应用程序中来扩展标准ZigBee群集。 标准ZigBee Cluster的制造商特定属性可以使用从0x0000到0xffff的整个属性ID地址空间。 每个制造商特定的属性必须包含2字节的制造商代码,以便与非制造商特定的属性区分开来。

示例: APP应用程序框架中的sample-extensions.xml文件定义了共享与on/off Cluster0x0000的on/off状态相同的属性ID的属性转换时间。 但是,产品化时间属性还包含制造商代码0x1002,这表明它是Silicon Labs的制造商特定属性。 注意:Silicon Labs的制造商代码0x1002是ZigBee

是organization定义的,包含在制造商代码数据库中。 (ZigBee文档#053874 )。 制造商代码用于实现制造商特定的群集、属性和命令。 ZigBee为每个请求组织提供唯一的制造商代码。 要获取组织的制造商代码,请通过http://zigbee.org与ZigBee联系。

16.2限制在使用制造商特定的群集、属性和命令扩展APP应用框架时,可能需要考虑两个明显的限制。

所有群集id (包括制造商特定的群集id )在单个设备中必须是唯一的。 ZigBee APP应用程序框架当前不支持将制造商特定的群集id重叠在单个设备上。

换句话说,您不能在同一设备上用制造商代码0xFEED实现Cluster 0xFC00,用制造商代码0xBEEF实现Cluster 0xFC00。Ember应用程序框架假设所有Cluster id都是唯一的,不管与它们相关联的制造商代码是什么。

特定于制造商的Cluster中的所有属性和命令id必须是惟一的,并且假定它们具有与所在Cluster相同的制造商代码。ZigBee协议不支持在特定于制造商的Cluster中重叠特定于制造商的属性或命令id(具有不同的制造商代码)。原因很简单,在ZigBee应用程序报头中只传递了一个制造商代码。如果所寻址的Cluster位于特定于制造商的范围0xFC00 - 0xFFFF中,则假定制造商代码适用于该Cluster。这使得不可能将属性0x0000与制造商代码0xFEED放在Cluster 0x0000与制造商代码0xBEEF之间。Ember应用程序框架甚至不需要为特定于制造商的Cluster中的属性存储单独的制造商代码,因为Cluster的制造商代码被假定应用于Cluster中的所有属性。

16.3 在应用程序框架和Ember AppBuilder中定义ZCL扩展

整个ZigBee Cluster Library在工具/appbuilder目录中以XML格式定义。除了预期的XML文件(如general.xml或ha.xml,它们描述了Ember应用程序框架使用的与标准ZCL相关联的Cluster、命令和属性)之外,还有一个示例扩展文件,名为sample-extensions. XML,这并不奇怪。这个XML文件包含几个样例ZigBee扩展,包括一个自定义Cluster、添加到on/off Cluster的自定义属性和添加到on/off Cluster的自定义命令。

为了扩展Zigbee cluster library,您必须为您的扩展创建一个类似的扩展文件,并按照AppBuilder在线帮助中“Creating Custom Clusters”一节中包含的说明将它们添加到AppBuilder中。

可以使用Zigbee应用程序框架和AppBuilder的XML模式定义文件(XSD)验证定制的XML配置文件。appbuilder。您的特定simple Studio版本的xsd可以通过转到File | Preferences | App Builder | ZCL Application并单击位于可用堆栈配置列表下的导出xsd文件链接来生成。关于扩展Zigbee应用程序框架的更多文档包含在sample-extensions.xml文件中。

注意:在XML文件中指定的任何多字节数字常量值都应该将完整的数字指定为十六进制,例如“0x000000000000”(对于int48u),而不是简单的“0x00”或“0”。这将确保在生成过程中将适当的默认值添加到_endpoint_config.h文件中定义的GENERATED_DEFAULTS。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。