zigbee应用分析

zigbee应用分析

ID:41010893

大小:102.00 KB

页数:12页

时间:2019-08-13

zigbee应用分析_第1页
zigbee应用分析_第2页
zigbee应用分析_第3页
zigbee应用分析_第4页
zigbee应用分析_第5页
资源描述:

《zigbee应用分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、初始化因为Z-Stack是在OS下运行的,所以在之前必须调用osalAddTasks()初始化任务。组织关于OS的API函数介绍请看文档:Z-Stack OSAL API (F8W-2003-0002),应该说协议栈的每层或者说每部分都有相关的API说明文档。osalAddTasks()初始化任务, osalTaskAdd()函数添加任务,都可以到API文档或程序中详细分析函数功能。系统服务OSAL和APL系统服务是唯一的,因为比如按键和串口类似事件处罚就只能用唯一的一个任务标识。这两个硬件都留给了用户自己定义使用。应用设计用户可能为每一个应用对象都创建一

2、个任务,或者为所有的应用对象只创建一个任务。当选择上述的设计的时候,下面是一些设计思路:为许多应用对象创建一个OSAL任务下面是正面和反面(pros & cons)的一些叙述:- Pro:接受一个互斥任务事件(开关按下或串口)时,动作是单一的。- Pro:需要堆栈空间保存一些OSAL任务结构。- Con:接收一个AF信息或一个AF数据确认时,动作是复杂的-----在一个用户任务上,分支多路处理应用对象的信息事件。- Con:通过匹配描述符(如:自动匹配)去发现服务的处理过程更复杂-----为了适当的对ZDO_NEW_DSTADDR信息起作用,一个静态标志必

3、须被维持。为一个应用对象创建一个OSAL任务:一对一设计的反面和正面(pros & cons)是与上面一对多设计相反的:- Pro:在应用对象试图自动匹配时,仅仅一个ZDO_NEW_DSTADDR被接收。- Pro:已经被协议栈下层多元处理后的一个AF输入信息或一个AF数据确认。- Con:需要堆栈空间保存一些OSAL任务结构。- Con:如果两个或更多应用对象用同一个唯一的资源,接收一个互斥任务事件的动作就更复杂。强制方法任何一个OSAL任务必须用两种方法执行:一个是初始化,另一个是处理任务事件。任务初始化在例子中调用如下函数执行任务初始化:“Appli

4、cation Name”_Init(如SAPI_Init)。该任务初始化函数应该完成如下功能:变量或相应应用对象特征初始化,为了使OSAL内存管理更有效,在这里应该分配永久堆栈存储区。在AF层登记相应应用对象(如:afRegister())。登记可用的OSAL或HAL系统服务(如:RegisterForKeys())任务事件处理调用如下函数处理任务事件:“Application Name”_ProcessEvent (e.g. SAPI_ProcessEvent()).除了强制的事件之外,任一OSAL任务能被定义多达15个任务事件。强制事件一个任务事件SY

5、S_EVENT_MSG (0x8000), 被保留必须通过OSAL任务设计。SYS_EVENT_MSG (0x8000)任务事件管理者应该处理如下的系统信息子集,下面只列出了部分信息,但是是最常用的几个信息处理,推荐根据例子复制到自己项目中使用。AF_DATA_CONFIRM_CMD调用AF_DataRequest()函数数据请求成功的指示。Zsuccess确认数据请求传输成功,如果数据请求设置AF_ACK_REQUEST标志位,那么,只有最终目的地址成功接收后,Zsuccess确认才返回。如果数据请求没有设置AF_ACK_REQUEST标志位,那么,数据

6、请求只要成功传输到下跳节点就返回Zsuccess确认信息。AF_INCOMING_MSG_CMDAF信息输入指示KEY_CHANGE键盘动作指示ZDO_NEW_DSTADDR匹配描述符请求(Match Descriptor Request)响应指示。(例如:自动匹配)ZDO_STATE_CHANGE网络状态改变指示网络格式化示例应用程序编译为协调器的在default_chanlist指定的通道上形成一个网络,协调器将建立一个随机编号源于自身的IEEE地址或由zdapp_config_pan_id指定的网络PAN ID(如果zdapp_config_pan_

7、id不为0xFFFF)。示例应用程序编译为路由器或结束设备的将尝试加入网络在default_chanlist指定的通道上,如果zdapp_config_pan_id没有定义为0 xFFFF ,路由器将受到限制,只有加入参数zdapp_config_pan_id规定的网络PAN ID。自动启动设备自动开始尝试组建或加入网络。如果设备设置为等待计时器或其他外部事件发生后才启动,那么HOLD_AUTO_START必须被定义。为了稍后以手动启动方式启动设备,那么需要调用ZDApp_StartUpFromApp(函数软件启动为了在形成网络过程中节省所需的设备类型,那

8、么所有的路由器设备可以被通过soft_star定义作为一个协调器。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。