zigbee ---- profile 和 cluster
在zigbee规范中,引入了profile, cluster的概念。具体说来,假设规范一个profile(可以理解成一套规定),这个profile用来规范智能家居领域的相关产品都要满足那些要求,那么home automation public profile就规定了智能家居都要做什么。当然了,你可以自己规范一个自己的profile,称为private profile,而zigbee联盟则已经规范了一些profile,比如home automation,smart energy,building automation等,一个public profile也规定了profile 的ID,比如智能家居就规定是0x104。协议栈本身也有一个profile,就是Zigbee Device Profile,也就是ZDP了,这里规范了一个zigbee节点都要具备那些功能,比如路由能力啊,网络发现能力啊,各个协议层都要做什么啊,如此。
在一个profile的规范下,又提出了cluster的概念,这个cluster要理解成一个大方向下的一个特定对象,比如智能家居下的一个调光器,操作这个调光器就需要一些命令,比如变亮,变暗,关灯,开灯这些,另外,这个调光器也会有一个attribute,也就属性,比如当前的亮度啊,由亮变暗的过程经历多长时间啊(一下子变亮视觉感觉没有渐变效果好喔)。对于home
automation 的public profile已经规定了调光器应该有哪些cluster,如:Color Control
Cluster,Ballast
Configuration Cluster 等。然后,profile也规范了color control cluster
的ID,这个就是clusterID了。
总结说来,Profile规范了应该包括哪些cluster,一个cluster会有一个ID,在一个cluster下又会有很多command,也会有很多attibute;在一个cluster下面command 和attribute的ID要唯一,不同的cluster下可以重复,不同的profile下clusterID也可以重复。
再延伸一点儿,zigbee联盟在协议栈之外又增加了一部分操作cluster的函数,那就是zigbee
cluster library (ZCL),这里边已经以源代码的形式提供了操作联盟规范的那些public
profile下的函数,主要功能包括一些command的transmit,response,indicate以及confirm等,还有读写attribute的一些操作函数。所以在理解了ZCL的工作机制基础上,通过调用ZCL的函数实际上会让应用程序设计变得简单(但是学习ZCL倒是很麻烦)。
假设我们要控制一个LED,有一个远程节点(发命令控制led
),一个本地节点(接受命令并真正的让led亮起来),那么如果引入ZCL的概念,你可以设置这个操作led的事情是一个cluster,其下包含三个命令,一个open,一个close,一个read
attribute,灯还有一个attribute,那就是当前的status,远程节点可以用ZCL的函数发open和close命令,也可以随时发一个read
attibute命令读取本地节点led
的状态。这么做的好处是不需要再自己设计一个规定(比如:一个数据包的第几个字节表示什么。。。),而是直接调用ZCL即可实现,这对于command和attribute数量很少的应用不见得有多大好处,但是当command和attribute数量很多的时候,引入ZCL会让事情变得简单。
zigbee ---- profile 和 cluster的更多相关文章
- zigbee、profile、cluster、 endpoint、
1.引用ZigBee联盟的说法 Profile: a collection of device descriptions, which together form a cooperative appl ...
- ZigBee profile
每个ZigBee设备都与一个特定模板相关联,可能是公共模板或私有模板.这些模板定义了设备的应用环境.设备类型以及用于设备间通信的簇.采用公共模板,可以确保不同供应商的设备在相同应用领域的互操作 ...
- 手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
前言 兄弟们,我发现一个有意思的东西,我在爱智官网翻资料的时候,发现他们终于终于把官网文档的索引优化了!有一说一,真是方便不少,终于不再是一堆文档糊在一坨了. 另外我还发现他们居然做了一个EFR32的 ...
- 逻辑网络(Logical Network)
Introduction The VMM documentation indicates that “A logical network is used to organize and simplif ...
- Maven根据不同的环境打包不同的配置
前言: 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置等等. 那么就需要借助maven提 ...
- Hadoop-HA集群搭建-rehl7.4
Hadoop-HA集群搭建-rehl7.4 hadoop 无说明需要登录其它机器操作,都是在集群的HD-2-101上执行的命令. 所有安装包地址:百度网盘,提取码:24oy 1. 基础环境配置 1.1 ...
- 【转】zigbee协议的多种profile
- ZHA profile与ZLL profile的一个例子
ZHA Coordinator 如何控制ZLL Light/Philips Hue Light 缩写: ZHA: ZigBee Home Automation profile ZLL: ZigBee ...
- TI Zigbee Light Link 参考设计
TI Zigbee Light Link 参考设计 原文出处: http://processors.wiki.ti.com/index.php/Category:ZigBee_Light_Link ...
随机推荐
- linux进程 生产者消费者
#include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h> # ...
- intellij idea之git执行打标签(tag)和删除标签
intellij idea 版本为2017.2.6 进入Version Control-->log 1.在之前版本中,右键,新建标签 2.输入标签名称,建议输入版本号的方式 3.push标签 由 ...
- docker学习(三) 安装docker的web可视化管理工具
1.docker是一个一款很轻便的应用容器引擎,为了更好的管理和使用docker,使用web可视化管理工具似乎更符合大多数人的需求.在这里,我给大家分享下自己使用过的几款web工具:docker UI ...
- Delphi中ModalResult的使用
Delphi中ModalResult的功能非常实用. 在自己设计的Dialog界面中,选择相应的按钮,设置按钮的 ModalResult属性为mrOK .mrCancel 等.这样的设置,当按下该按钮 ...
- Markdown 基本用法
声明:引自 http://www.cnblogs.com/hnrainll/p/3514637.html ,感谢! 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置 ...
- 【HNOI2008】玩具装箱TOY & 斜率优化学习笔记
题目 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为 \(1\cdots N\ ...
- 『JavaScript』模仿接口
JavaScript中并没有内置的创建或实现接口的方法.这里将利用JavaScript的灵活性,来实现与接口意义相同的功能. 什么是接口? 接口的好处: 接口提供了一种用以说明一个对象应该具有哪些方法 ...
- js滚动及可视区域的相关的操作
element.getBoundingClientRect 判断指定元素相对于页面可视窗口的位置信息,通常结合windows.onScroll方法使用,当element.getBoundingClie ...
- 阴影效果的小 demo
早上没事干,感觉字体阴影的效果还是好看的,那么就来一个小demo吧! 1.这是html 简单的有一个标签或者盒子都可以 <div class="demo11">我爱考试 ...
- C#异步了解一下
如何让你的代码在“同一时间”干着两件件事呢?比如说,在初始化加载配置的同时,UI界面能够响应用户的各种点击事件.而不置于卡死,特别是出现如下面这种情况的时候,对于用户来说是很崩溃的.