Zigbee事件

原创 2015年07月09日 13:54:37

ZIGBEE事件有两类,系统定义事件和用户定义事件。

系统类事件是协议栈已定义好的,用户类事件是我们用户层面来定义的。

事件类号采用一个16bit的常量,使用独热码编码,独热码是只有一个bit为1,其他全为0的一种码制,采用独热码的优点是操作方便,可以使用简单的位操作指令实现,如:提取系统类事件用events & SYS_EVENT_MSG,清除系统类事件用events ^ SYS_EVENT_MSG;由于事件类号是16bit,也就是说zigbee事件类只有16个,系统类事件SYS_EVENT_MSG使用0x8000,故自定义事件类只有15个,可采用0x4000至0x0001。

事件处理函数为:app_ProcessEvent( byte task_id, UINT16events ),可见调用此函数将传递两个参数,task_id任务号和events事件类号;事件处理函数首先根据事件类号来判断是何种类型事件,然后根据任务号得到消息指针pMsg,最后根据消息指针结构里的事件号pMsg->event来具体处理事件,event为8bit的常量,系统event在ZComDef.h里定义。

在ZigBee协议栈中,任何通信数据都是利用帧的格式来组织的,协议栈的每一层都有特定的帧结构;AF定义了两种帧类型,键值对(Key Value Pair,KVP)和报文(Message,MSG);KVP消息主要用于传输一些较为简单的变量格式;但由于Zigbee的很多应用领域中的消息较为复杂并不适用KVP格式,因此Zigbee协议规划定义了MSG类型。MSG对数据格式不作要求,适合任何格式的数据传输,因此可以用于传送数据量大的消息。

下面对系统event说明(其中AF_代表应用框架,ZDO_代表设备对象):
1、
AF_DATA_CONFIRM_CMD:Data confirmation数据收到确认;A设备发送数据,B设备收到数据后将返回应答ack给A,A收到此ack将触发AF_DATA_CONFIRM_CMD事件;F_DataRequest函数参数options如设AF_ACK_REQUEST,则要求对方设备回复ack。

2、
AF_INCOMING_MSG_CMD:Incoming MSG type message收到报文类型的消息;A设备用AF_DataRequest函数发出报文消息,B设备收到报文消息将触发AF_INCOMING_MSG_CMD事件。

3、
AF_INCOMING_KVP_CMD:Incoming KVP type message收到键值对类型的消息。

4、
AF_INCOMING_GRP_KVP_CMD:Incoming Group KVP type message收到群键值对类型的消息。

5、
KEY_CHANGE:Key Events按键触发事件。

6、
ZDO_NEW_DSTADDR:ZDO has received a new DstAddr for this app ZDO终端获得新地址;匹配描述符请求(Match Descriptor Request)响应指示(例如:自动匹配);如A设备加入绑定后,A设备触发ZDO_NEW_DSTADDR事件。

7、
ZDO_STATE_CHANGE:ZDO has changed the device's network state ZDO网络状态改变;当A设备的网络状态改变时,A就会触发此消息,如SampleApp_NwkState = DEV_INIT也会触发(我理解,不知对不对)。

8、
ZDO_MATCH_DESC_RSP_SENT:ZDO match descriptor response was sent ZDO描述符匹配响应发送;A设备发送ZDP_MatchDescReq函数请求描述符匹配绑定,B设备收到后发送ZDP_MatchDescRsp函数响应,B设备发送响应函数后触发ZDO_MATCH_DESC_RSP_SENT事件。

9、
ZDO_CB_MSG:ZDO incoming message callback 收到ZDO反馈消息;A设备用函数ZDO_RegisterForZDOMsg注册了特定消息,A设备才能用ZDO_CB_MSG消息接收解析此特定消息;应用绑定例子:A设备发送绑定请求,B设备收到后发送匹配响应,A设备收到响应触发ZDO_CB_MSG事件。


///////////////////////未完待续

相关文章推荐

ucosii在stm32上的移植详解3

ucosii在stm32上的移植详解3   转载请注明出处:http://blog.csdn.net/lbl1234     移植详解1和2中主要讲了移植需要用到的基础知识,本文则对具体的移植过...
  • artmcu
  • artmcu
  • 2012年12月01日 14:00
  • 1552

ZIGBEE协议栈从底层添加一个自己的按键

ZIGBEE协议栈从底层添加一个自己的按键

ZigBee协议栈事件处理解析

  • 2014年08月05日 14:20
  • 1.82MB
  • 下载

ZiGbee CC2530 OSAL系统 按键事件讲解

因朋友所托而我也正在学习Zigbee跟BLE4.0所以就花了两小时先看了下KEY的运作原理 下面来介绍下 首先打开Zmain.c文件的main函数我们可以看到 HalDriverInit(); 硬...
  • Everler
  • Everler
  • 2017年03月24日 15:01
  • 118

ZigBee 中 z-Stack协议中的任务、事件、消息处理流程

1,系统上电以后在main函数的最后会调用osal_start_system()方法来启动系统,这个方法是个死循环,只循环里面只做一件事:不断的检测任务,看任务里面有没有事件需要处理;    检测方...
  • PZ0605
  • PZ0605
  • 2017年03月17日 11:53
  • 583

TI ZigBee协议栈中终端设备的状态切换详解

转载自:http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/104629.aspx ...

ZigBee智能农场远程监控系统

0 引言 监控系统在智能农场的功能发挥中起到了至关重要的作用,但有线监控系统有着很大的局限性。加上农场内地形情况、环境因素十分复杂,一些土壤及环境参数,比如:土壤湿度、温度,空...

第四章-IEEE802.15.4标准与Zigbee协议

第4 章  1.        IEEE 802.15.4标准是一种低速率、近距离无线通信标准 2.        IEEE 802.15.4标准主要包括:物理层,介质访问控制层 3.     ...
  • zm1_1zm
  • zm1_1zm
  • 2016年12月02日 20:48
  • 557

Zigbee通讯漫谈(初次见面)

郑重声明:以下文章内容适合初学Zigbee的童鞋们,大神请略过…… 1 缘由:   工作中听说过Zigbee技术,只是知道是一种无线通讯技术,具体技术细节及使用都不是很清楚。不料,一个...

zigbee协议与开发-ZStack协议栈结构的初步解析

在阅读了Zigbee及IEEE802.15.4协议的理论知识后,接下来看一下TI公司开发的基于Zigbee的协议实现ZStack。   我们仍然从TI提供的温度监测程序开始,首先查看一下,程序的主...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Zigbee事件
举报原因:
原因补充:

(最多只允许输入30个字)