1 Zigbee应用程序框架开发指南 - 概述

2 Zigbee应用程序框架开发指南 - 应用程序框架结构

3 Zigbee应用程序框架开发指南 - 应用程序框架目录结构

4 Zigbee应用程序框架开发指南 - 生成应用程序配置文件

5 Zigbee应用程序框架开发指南 - 应用程序框架API

6 Zigbee应用程序框架开发指南 - 应用程序框架Callback接口

7 Zigbee应用程序框架开发指南 - 时间处理

8 Zigbee应用程序框架开发指南 - 事件

9 Zigbee应用程序框架开发指南 - 属性管理

10 Zigbee应用程序框架开发指南 - 命令处理和生成

11 Zigbee应用程序框架开发指南 - 命令行接口(CLI)

12 Zigbee应用程序框架开发指南 - 调试打印接口

13 Zigbee应用程序框架开发指南 - 多网络支持

14 Zigbee应用程序框架开发指南 - 睡眠设备

15 Zigbee应用程序框架开发指南 - 应用程序框架插件

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

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

18 Zigbee应用程序框架开发指南 - 应用框架V6

17 使用Ember AppBuilder设计应用程序

AppBuilder是一个用于生成zigbee兼容的应用程序的工具。AppBuilder由两部分组成: Zigbee应用程序框架和用于配置所包含的源代码的图形工具。Ember AppBuilder图形化工具既是一个独立的应用程序,也是一个Simplicity Studio插件。AppBuilder为您提供了一个用于打开或关闭嵌入式Cluster的接口,以及编译成最终应用程序的代码中的特性。

AppBuilder旨在满足以下目标:

  • 为Silicon Labs无线平台快速创建zigbee兼容的应用程序。
  • 通过提供标准的SE和HA应用程序,支持快速开发并缩短客户上市时间。

17.1 ZCL概念

17.1.1 定义

ZigBee Application Profiles
ZigBee application profiles为应用程序组中的所有设备指定通用设置(例如安全性、连接参数和轮询率)。应用程序配置文件还精确地指定必须为应用程序组中的每个设备支持哪些Cluster(protocols)。

AppBuilder目前支持6个Zigbee应用程序配置文件:

  • Zigbee 3.0
  • Home Automation (HA)
  • Smart Energy (SE,前AMI或自动化抄表基础设施)
  • Commercial Building Automation (CBA)
  • ZigBee Light Link (ZLL)
  • Health Care (HC)

Clusters
每个ZigBee Cluster定义一个应用程序级协议。这些协议(或cluster)定义了特定ZigBee设备的功能。任何具有网络背景的人都可以将cluster看作是在ZigBee规范中封装的应用程序协议。

ZigBee Cluster Library (ZCL)是一个指定ZigBee设备使用的cluster的文档。原始ZCL文档有30个clusters,其中大多数cluster被至少一个设备在ZigBee HA应用程序配置文件中指定为必需或可选。SE应用程序配置文件使用了ZCL中指定的一些cluster,但也指定了SE独有的新cluster。

Devices
ZigBee设备可以看作是cluster的集合。例如,一个开/关灯开关和一个开/关灯是HA配置文件中31个设备中的两个。一个配置文件中的所有设备都必须使用相同的安全性。有关于轮询率、启动参数、应该实现哪种类型的ZDO消息等方面的建议,其思想是这些设备必须在同一网络上互操作。如果设备具有不同的安全设置,则它们不能连接在一起。如果用户从公司a购买一个HA设备,并从公司B购买一个HA设备,因为他们使用相同的应用程序配置文件,其中一个设备应该能够加入另一个设备。

如果两个ZigBee设备在一个经过认证的ZigBee stack上,它们可以互相路由。换句话说,它们可以在应用程序级别交换消息。在使用应用程序配置文件之前,不能保证应用程序级别的互操作性。这些标准的应用程序配置文件使AppBuilder能够生成兼容的ZigBee应用程序。

HA on/off灯有以下实现:

  • Identify server (required by all)
  • Groups server
  • Scenes server
  • On/Off server

HA on/off灯开关有以下实现:

  • Identify client
  • Groups client
  • Scenes client
  • On/Off client

开/关灯开关可以发送开/关或切换信息,说明开/关灯需要理解和遵守。

17.1.2 关于集群和属性的更多信息

Cluster指定两件事:属性和命令。属性是定义良好的数据片段,存储在设备上,可以由外部设备读取(有时是写入)。命令指定交换的空中消息。ZCL定义的每个命令都是单向的,因为它是由一方(客户机或服务器)发送并由另一方接收的。一个设备只能实现cluster的一端,或者它可以实现cluster的两端。

例如,“HA on/off Light”实现“on/off” Cluster的服务器端,而“HA on/off Light Switch”实现“on/off” Cluster的客户端。这定义了灯开关发送“开”、“关”和“切换”命令,灯可以接收(和理解)。它还定义了一个名为“on/off”的布尔属性,表示设备的当前状态。

注意:ZigBee经常使用术语“in-cluster-list”和“out-cluster-list”来代替服务器和客户端。“in-cluster-list”是受支持的服务器Cluster的列表,而“out-cluster-list”是受支持的客户机Cluster的列表。

在大多数情况下,Cluster的服务器端包含所有属性,而客户端是发起空中交换的端。在大多数情况下,客户端发送一条消息,而服务器应答该消息。

17.1.2.1 Identify Cluster示例

由ZCL定义的客户机/服务器交互在图9所示的Identify示例中进行了说明。

图9 Cluster 示例: Identify
与许多Cluster一样,Identify Cluster是一个相当简单的Cluster。右下角显示单个属性,标识时间。
Identify cluster 用例
一个用户在一个房间里准备了一个12盏灯的网络,并且必须将其中的6盏灯连接到一个单独的开关上。每个灯的MAC地址用于将其与开关相关联。所有12个灯的MAC地址可以通过使用供应工具和低功率广播或使用每个灯指示房间或位置的令牌(在安装时设置)来发现。“Identify”功能可以用来确定哪6个MAC地址对应于用户想要绑定到开关上的6个物理灯。使用Identify cluster,用户可以分别告诉每一盏灯“识别”自己(例如,闪烁,让它可以被看到)。
Identify cluster定义了设备如何进入和退出Identify模式的协议。在上面的例子中,供应工具实现了identify集群的客户端,而需要识别的light或设备实现了服务器端。

当客户端想要告诉设备“开始识别”时,它会发送“Identify”命令并指定一段时间(以秒为单位)来继续识别。当identify time属性(每秒递减)达到0时,或者当设备收到identify time值为0的“identify”命令时,设备停止识别。

图a1中的第一个消息打开了“identify”。当identify被打开时,一个时间段也被包含在消息中。例如,假设identify打开了30秒。第二条消息显示客户端(配置设备)查询服务器(light),以确定标识过程中还剩多少时间。

因为可以将查询消息发送给组,所以可以将设备设置为它正在标识的模式,然后使用PC或供应工具确定组中的哪个设备正在标识。如果设备支持开始识别的物理线索,这是有用的。然后,可以戳设备(按钮按下,磁铁棒,等等)开始识别,并可以发送一个组消息来将MAC地址映射到物理设备。

17.1.2.2 Temperature Measurement Cluster示例

图10展示了cluster的另一个示例。这个例子显示了温度测量。

图10 Cluster 示例:Temperature measurement

注意,这个集Cluster没有命令——它只有属性。在这种情况下,该设备实现温度测量,例如恒温器。此示例包括测量值、最小测量值和最大测量值。在没有命令的情况下,这个Cluster依赖于ZCL中定义的全局命令。全局命令定义用于读取、写入、发现和报告属性的消息。

注意:14个全局命令读取属性、写入属性、配置属性报告、发现属性和报告属性值。只包含属性的Cluster易于理解和实现,因为全局命令已经实现。

为了读取这个Cluster的属性值,需要使用全局读取属性命令。此消息包含要读取的属性的属性ID。在组合中,集群和属性ID提供惟一标识。在嵌入式方面,这使得将所有属性集中在一个表中成为可能。这些属性的所有代码都是通用的共享代码。

因此,例如,当添加四个温度测量传感Cluster时,对flash的影响是最小的,因为没有额外的命令。对RAM的影响取决于每个Cluster添加的属性数量。

ZigBee Cluster Library提供的应用程序级协议使两家公司可以单独开发产品,并让它们一起工作,而不必一起进行测试。

17.2 Ember AppBuilder和应用程序框架架构

AppBuilder是一个GUI工具,它是Simplicity Studio桌面应用程序的一部分,用于配置Zigbee应用程序框架代码。AppBuilder从已安装的堆栈目录中读取配置数据。位于tool/appbuilder中的.properties和.xml文件告诉appbuilder它需要知道的关于相关堆栈的所有信息。通过解释堆栈中的这些配置文件,AppBuilder能够生成完整的Zigbee应用程序所需的适当配置数据和项目文件。

图11显示了AppBuilder如何与Zigbee应用程序框架一起工作。

图11 AppBuilder和应用程序框架是如何工作的

17.2.1 AppBuilder GUI

GUI不生成任何代码—所有代码都已经存在。代码使用# define进行保护,如图12所示

图12 它是如何工作的?(GUI)

在图12中,Ember AppBuilder GUI显示在左边。GUI的配置输出显示在右边。GUI生成一组# define,称为生成的配置。在构建时,编译后的代码包括由Ember AppBuilder生成的配置文件。通过使用# define,可以打开或关闭嵌入代码的不同特性。

您可以从GUI中选择一个预先定义的设备,该设备指定一组已建立的Cluster,或者您可以选择您自己的自定义设备。stack选项可用于安全性、PAN ID、xPAN和睡眠时间(即nap/hibernate)。HAL选项可用于平台(SoC或EZSP主机)、引导加载程序、调试级别、串口和GPIOs。

例如,睡觉就是#defines之一。如果一个设备是一个休眠设备,您将获得一个休眠设备的所有代码。如果没有,所有用于休眠设备的代码都将从构建中排除。这种方法非常模块化。如果您尝试在没有特定Cluster的情况下构建,那么很容易确定您什么时候离开了模块,而另一段代码期望该Cluster出现。
重要的是要理解您可以选择特定的设备或特定的Cluster。在选择设备时,它指定了为了符合ZigBee规范而应该使用的确切Cluster。这是确保设备符合ZCL规范的简单方法。

睡眠时间包括nap和hibernate时间。nap时间配置使向设备可靠地发送消息成为可能,前提是nap时间小于用于从处于睡眠状态的设备的父设备检索消息的超时时间。hibernate配置允许比间接传输超时时间更长的睡眠间隔。

您可以设置PAN ID、安全级别、扩展PAN,并指定执行连接操作时使用的首选通道。HAL部分指定了平台。例如,如果选择EM357 SoC,则可以选择引导加载程序、调试级别和要使用的串行端口,并指定如何配置GPIOs。

17. Zigbee应用程序框架开发指南 - 使用Ember AppBuilder设计应用程序相关推荐

  1. 9. Zigbee应用程序框架开发指南 - 属性管理

    1 Zigbee应用程序框架开发指南 - 概述 2 Zigbee应用程序框架开发指南 - 应用程序框架结构 3 Zigbee应用程序框架开发指南 - 应用程序框架目录结构 4 Zigbee应用程序框架 ...

  2. 王者级微信小程序开发实战教学 从零到高手搭建微信小程序框架开发教程

    王者级微信小程序开发实战教学 从零到高手搭建微信小程序框架开发教程 小程序进阶 王者级微信小程序开发实战教学课程,讲师手把手对同学们进行微信小程序开发的进阶实战,从零开始搭建,从本地到云端开始系统化的 ...

  3. 基于微信小程序云开发的职业学校招生报名小程序源码,职业学校招生报名微信小程序源码 ,职业学校招生报名小程序源码

    功能介绍 这是一个以报名为核心的职业学校招生小程序,目的是方便想要系统学习技能,入门某项技能或者领域的初高中毕业生,了解该学校的基本情况及各个专业,并提供报名路径,致力于技能型人才培养. 本程序前后端 ...

  4. 微信小程序从零开始开发步骤(二)创建小程序页面

    上一章注册完小程序,添加新建的项目,大致的准备开发已经完成,本章要分享的是 要创建一个简单的页面了,创建小程序页面的具体几个步骤: 1. 在pages 中添加一个目录 选中page,右击鼠标,从硬盘打 ...

  5. python操作微信小程序云端数据库_微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序...

    微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序 浏览量:1120 时间:2020-04-06

  6. 【小程序云开发】30分钟搭建个人相册小程序

    文章目录 前言 最终效果 准备工作 小程序架构 创建小程序云开发环境 创建数据库 搭建个人相册 写在最后 前言 图片存储,是所有应用开发里最常见的场景之一. 本文将通过实战"个人相册小程序& ...

  7. PB安装包,PB安装程序,PB开发工具,powerbuilder安装包,powerbuilder安装程序,powerbuilder开发工具下载地址

    B安装包,PB安装程序,PB开发工具,powerbuilder安装包,powerbuilder安装程序,powerbuilder开发工具下载地址 如果不能打开请复制网址粘贴到浏览器中 http://p ...

  8. 开发跨端微信小程序框架选型指南

    多端框架uni-app和Taro选型对比 一. 背景 小程序原生开发有不少槽点: 1.原生wxml开发对Node.预编译器.webpack支持不好,影响开发效率和工程构建流程.所以大公司都会用框架开发 ...

  9. 「小程序」开发 指南(里面是小程序开发的各种论坛和文档)

    之前研究小程序,看到了一篇小程序的开发帖子,在这分享给大家. 什么是微信小程序? 微信之父张小龙是这样描述小程序的: 小程序是一个不需要下载安装就可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或 ...

  10. Jdon框架开发指南

    Jdon框架快速开发指南 开发主要步骤如下: JdonFramework6.0以上两步开发见这里. 快速配置指南 新增/查询/修改/删除(CRUD); 批量查询和分页显示 本文Step By Step ...

最新文章

  1. HDU - 5876 Sparse Graph 2016 ACM/ICPC 大连网络赛 I题 bfs+set+补图最短路
  2. POS 收款机资料整理
  3. XiaoKL学Python(C)__future__
  4. python生成的词云没有图案_还在为专栏封面发愁?我用Python写了个词云生成器!...
  5. tiny4412移植tslib库
  6. python+selenuim自动化测试(六)上传文件
  7. 虚拟机网络模式与网络配置
  8. VS快捷键及调试方法(含VAssistX快捷键)
  9. 虚拟工具]虚拟机VMware6.0深度精简汉化版+VMware Tools
  10. Altium Designer软件插件之封装神器Altium Library Loader
  11. ANU COMP1100 Lab1简介
  12. c语言考场排座系统,具才考场座次编排系统
  13. 使用MapReduce计算Pi
  14. 设计模式——访问者模式
  15. 计算机上做报纸模板,word中怎么制作报纸排版模板
  16. CVE-2020-2905: VirtualBox 虚拟机逃逸漏洞通告
  17. thymeleaf模板引擎: org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 '' 后面。
  18. 计算机专业学习阶段计划书怎么写,计算机专业学习计划优秀范文2篇
  19. 使用 Struts 2 实现国际化
  20. 六级高频词汇——Group03

热门文章

  1. gdb x 命令详解
  2. JarvisOJ 逆向Writeup
  3. swing打地鼠游戏_幼儿园里的室内徒手游戏(二)
  4. 基于Java的旅游门票管理系统JAVA MYSQL
  5. 微型计算机要与局域网连接必须安装的硬件,计算机与局域网连接需要什么硬件...
  6. php杨辉三角的规律,杨辉三角的规律以及定理
  7. 每一篇博文都是与自己的一次对话
  8. 木木早教机器人说明书_机器人操作说明VS小孩使用指南
  9. 计算机网络分组交换特点,分组交换技术在计算机网络技术中的作用及特点是什么?...
  10. sklearn的系统学习——决策树分类器(含有python完整代码)