ZigBee学习笔记一端口号命令簇

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

主要解决的问题如何使用不同的命令号发送不同长度的的数据第一部分一些概念如图所示是一个节点设备上的端口号(endpoint)它是一个8位的字段,描述一个射频端所支持的不同应用。端口0x00:用于寻址设备配置文件,这是每个ZigBee设备必须使用的端口;端点0xff:用于寻址所有活动端口;端口0xf1~0xfe:保留;端口0x01~0xf0:共支持240个应用,即一个物理信道最多支持240个虚拟链路。图中还用另一个概念簇簇(cluster)多个属性的汇集形成了簇,簇是属性的集合,每个簇也拥有一个唯一的ID。譬如,FS_ZStack\SimpleSwitch.cconstcId_tzb_OutCmdList[NUM_OUT_CMD_SWITCH]=//输出簇列表{TOGGLE_LIGHT_CMD_ID//簇ID,1};FS_Zstack\SimpleController.cconstcId_tzb_InCmdList[NUM_IN_CMD_CONTROLLER]=//输入簇列表{TOGGLE_LIGHT_CMD_ID//簇ID,1};cId_t=uint16,端口的描述第一步,定义一个结构体用来描述端口endPointDesc_tGenericApp_epDesc;//结构体类型变量第二步初始化端口参数要完整的描述一个端口,分为两部分(1)endPointDesc_t端口描述(2)简单端口描述SimpleDescriptionFormat_t其实2是包含在1里面的只是由于2比较多就单独列出来了。下面是2的具体内容探明数据包内容1发送出去的数据是什么样子的第一步数据发送使用的是协议栈的发送函数内容包括了,目的地址目的节点上的那个端口簇里面的命令号要发送的数据长度要发送的数据地址发送的数据序列号第二步数据被接收后被解析成什么样子可以通过一个结构体看明白数据被接受过来以后到底是什么样子事件头很重要,它用来判断消息类型簇里面的命令号存储端口号链路质量数据具体位置很重要上面说到的两个很重要的成员在应用层程序里都有体现本想用两个命令号来区分不同的消息,但是好像不行!未完待续!第二部分消息队列从上面的讲解中我们了解了发送的无线数据、接收到的无线数据的样子。但对于接收到的数据存储在什么地方,还是不太清楚,下面探索数据到底存储于何处该怎样调用数据的不同部分。1.无线消息来了之后,协议栈是通过一个函数将这个消息红色的下划线是一个和消息数据类型一样类型符,这样指针就指向了这个消息,通过判断事件头类型来敲定所来消息是何种类型的消息,通过判断消息簇里命令编号来识别是哪一个命令。第三部分能解决的问题如果我们想让终端节点向协调器发送不同长度的数据,并且协调器要根据所发送的不同数据做出不同的反应。第一步,协调器编程第二步终端程序第四部分结果

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功