- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * 发送periodic信息流程 事件SAMPLEAPP_SEND_PERIODIC_MSG_EVT 处理。SampleApp_ProcessEvent()处理该事件处理函数调用SampleApp_SendPeriodicMessage()来发送周期信息。 SampleApp工程简介 发送周期消息函数 SampleApp工程简介 AF数据的通讯 在应用层任务的SampleApp_ProcessEvent事件消息循环中,根据事件类型处理端点间的无线数据消息(AF_INCOMING_MSG_CMD)。 SampleApp工程简介 AF数据的通讯 消息处理函数SampleApp_MessageMSGCB中,根据簇ID来标识不同的属性(AF数据)并进一步处理。 SampleApp工程简介 基于Z-Stack协议栈添加用户应用层任务的方法 如何在应用层添加自己的任务? Z-Stack协议栈以OSAL贯穿始终,用户要添加自己的应用,需要以任务的方式实现。 协议栈中已经将底层的任务模块(必要任务)完成,且留有应用层相应的接口。 添加任务函数: void osalAddTasks( void ) void osalTaskAdd( pTaskInitFn pfnInit, pTaskEventHandlerFn pfnEventProcessor, byte taskPriority) 添加应用层任务 完成两个函数 任务初始化函数 usrTask_Init(uint8 task_id) 主要完成内容有任务ID的设置、网络状态的初始化、端点的AF注册等。 任务事件处理函数 usrTask_ProcessEvent(uint8 task_id, uint16 events) 主要完成的内容有传递到应用层任务的事件和消息的处理。 添加应用层任务 添加用户任务 osalTaskAdd(usrTask_Init, usrTask_ProcessEvent, OSAL_TASK_PRIORITY_LOW ); 添加应用层任务 * * * * * * * * * * * * * * * * * * * * * * * * * ZigBee应用开发 内容摘要 Z-Stack协议栈OSAL初始化流程简析 Z-Stack协议栈MT层任务解析 SampleApp自组无线网实例解析 基于Z-Stack协议栈添加用户应用层任务的方法 Z-Stack协议栈OSAL初始化流程简析 Z-Stack软件层次 整个Z-Stack的主要工作流程, 大致分为系统启动,驱动初始化, OSAL初始化和启动,进入任务轮 循几个阶段。 Z-Stack软件启动流程 系统上电后,通过执行Zmain 文件夹中ZMain.c的主函数开始系 统初始化。 当顺利完成上述初始化时, 执行osal_start_system()函数开始 运行OSAL系统。 OSAL轮询操作系统 OSAL(Operating System Abstraction Layer) 操作系统抽象层 定义了其它模块中的事件的处理机制。它将每一模块内的所有事件放在一个任务中进行处理,任务间的通信通过传递系统消息来完成,这使得协议栈中的事件处理更类似于一个操作系统; 同时它还定义了堆内存管理、NV(non-volatile,非可变)存储系统的管理、电源管理、时钟管理等。 OSAL的任务调度 OSAL是协议栈的核心,Z-Stack的任何一个子系统都作为OSAL的一个任务。 任务调度函数按照优先级检测 各个任务是否就绪。如果存在就绪 的任务则调用tasksArr[]中相对应的 任务处理函数去处理该事件,直到 执行完所有就绪的任务。如果任务 列表中没有就绪的任务,则可以使 处理器进入睡眠状态实现低功耗。 任何OSAL任务必须分为两步: 任务初始化 分配任务内存空间,和指定唯一的标识号。 处理任务事件。 处理任务事件通过创建“ApplicationName”_ProcessEvent()函数处理。 最终通过void osalTaskAdd函数完成任务的添加。 OSAL的任务 OSAL中有些任务是协议栈运行所必须的,因此在工程中都要加入到任务数组中去(默认)。 OSAL中的重要任务 事件(EVENT) 类型为uint16,位域表述,
文档评论(0)