1-7 扩展和提高1:ZigBee协议中的规范(Profile)和簇(Cluester)的概念
来源:互联网 发布:json的ascii编码 编辑:程序博客网 时间:2024/06/05 11:02
ZigBee协议中的规范(Profile)和簇(Cluester)的概念
1、规范(Profile):ZigBee网络中数据的收发是建立应用规范(Application Profile)的基础上的。每个应用规范都有 一个ID;应用规范可分为公共规范(Public profile)且ID范围为0x0000`0x7FFF和制造商特定规范(Manufacturer Specific Profile)且ID范围为0xbF00~0xFFFF.其实,规范就是说一类建筑或场合使用某规范。比如:商业楼宇自动化有他自己的规范,且ID为0x0105,民宅要使用另一个ID号。很简单的吧。
2、簇(Cluester):某一应用对象的一个特定对象。比如自动窗帘。(打开是一个命令、关闭要是另一个命令)。比如实验2中的点对点通信中
- //Coordinator.h
- #define GENERICAPP_MAX_CLUSTERS 1 //定义一个簇的大小,一个簇的大小为N
- #define GENERICAPP_CLUSTERID 1 //定义一个簇中的一个一个命令ID
- //Coordinator.c
- const cId_t GenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS]= //GenericApp_ClusterList就是一个簇,他有GENERICAPP_MAX_CLUSTERS条命令,下面一一列出命令的ID号
- {
- GENERICAPP_CLUSTERID
- };
3、端口:使用一个节点就有一个网络地址,但在一个节点上可以有很多端口。在规范中使用简单描述符(SimpleDescriptionFormat_t结构)来描述一个端口。而在因为有很多端口,端口之间必需附加有任务切换使用的参数。结果就用endPointDesc_t结构来表示一个端口。endPointDesc_t定义如下:
//AF.h
typedef struct{ byte endPoint; byte *task_id; // Pointer to location of the Application task ID. SimpleDescriptionFormat_t *simpleDesc; //关键是这个,见下面的结构体。 afNetworkLatencyReq_t latencyReq; //使用默认参数即可} endPointDesc_t;
//Filename: AF.h
typedef uint16 cId_t;// Simple Description Format Structuretypedef struct{ byte EndPoint; //端口号 uint16 AppProfId; //应用规范ID uint16 AppDeviceId; //应用设备ID byte AppDevVer:4; //应用设备版本号 4bit 这里使用的是位域 byte Reserved:4; // AF_V1_SUPPORT uses for AppFlags:4. byte AppNumInClusters; //输入簇包含的命令个数 cId_t *pAppInClusterList; //输入簇列表 可有GENERICAPP_MAX_CLUSTERS个输入命令 byte AppNumOutClusters; //输出簇包含的命令个数 cId_t *pAppOutClusterList;//输出簇列表 可有GENERICAPP_MAX_CLUSTERS个输出命令} SimpleDescriptionFormat_t;
在协调器和终端节点都有一个SimpleDescripitonFormat_t类型定义的GenericApp_SipleDesc变量。(当然也可以定义多个变量。到底怎样应用到实例呢?还没想到)综合上面的所有,回看代码:
//Coordinator.c
//简单设备描述符(描述一个ZigBee设备节点)const SimpleDescriptionFormat_t GenericApp_SimpleDesc={ GENERICAPP_ENDPOINT, GENERICAPP_PROFID, GENERICAPP_DEVICEID, GENERICAPP_DEVICE_VERSION, GENERICAPP_FLAGS, GENERICAPP_MAX_CLUSTERS, //输入簇包含的命令个数 (cId_t*)GenericApp_ClusterList, //输入簇列表 可有GENERICAPP_MAX_CLUSTERS个输入命令 0, (cId_t *)NULL};
//Coordinator.h#define GENERICAPP_ENDPOINT 10 //端口在这里使用的是端口号10,可用的范围为(1~240)#define GENERICAPP_PROFID 0x0F04 //#define GENERICAPP_DEVICEID 0x0001 //#define GENERICAPP_DEVICE_VERSION 0 //#define GENERICAPP_FLAGS 0 /#define GENERICAPP_MAX_CLUSTERS 1 #define GENERICAPP_CLUSTERID 1
终端节点代码:
//Enddevice.c
//初始化端口描述符const SimpleDescriptionFormat_t GenericApp_SimpleDesc={ GENERICAPP_ENDPOINT, GENERICAPP_PROFID, GENERICAPP_DEVICEID, GENERICAPP_DEVICE_VERSION, GENERICAPP_FLAGS, 0, (cId_t*)NULL, GENERICAPP_MAX_CLUSTERS, //输出簇包含的命令个数 (cId_t*)GenericApp_ClusterList //输出簇列表 可有GENERICAPP_MAX_CLUSTERS个输出命令};
本文参考自:《ZigBee无线传感器网络设计与实现》 王小强等人编著化学工业出版社
- 1-7 扩展和提高1:ZigBee协议中的规范(Profile)和簇(Cluester)的概念
- ZigBee协议中的规范(Profile)和簇(Cluester)的概念
- 【Zigbee】ZigBee中Profile(规范),Cluster(簇)的认识
- ZigBee中Profile(规范),Cluster(簇)
- ZigBee中Profile(规范),Cluster(簇)
- ZigBee中Profile(规范),Cluster(簇)
- (二)ZigBee 协议规范
- (三)ZigBee物理层协议规范
- 比较ZigBee各版本规范(1)
- ZigBee中Cluster和Attribute的概念
- ZigBee中Cluster和Attribute的概念
- ZigBee中Cluster和Attribute的概念
- ZigBee中Cluster和Attribute的概念
- Zigbee Smart Energy的概念和应用
- Zigbee协议栈ZStack构架(文件夹和协议栈各层的对应关系)
- 蓝牙Profile的概念和常见种类
- 蓝牙Profile的概念和常见种类
- 蓝牙Profile的概念和常见种类
- 微信公众帐号开发教程第2篇-微信公众帐号的类型(普通和会议) (2)
- 【Nginx】Http负载均衡与反向代理
- delphi中DBgrid按时间查找,并做运算(测试小软件)
- 选美比赛
- 微信公众帐号开发教程第3篇-开发模式启用及接口配置 (3)
- 1-7 扩展和提高1:ZigBee协议中的规范(Profile)和簇(Cluester)的概念
- Android Property System | Android属性系统【1】
- Linux常见问题
- Android Property System | Android属性系统【2】
- 图片编辑器知识点总结
- UVa 11205 The broken pedometer (枚举好题&巧用二进制)
- Graphics 单元下的公用函数目录
- 认识HTML5的WebSocket
- ios证书