版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、物联网专业2013年1月教师培训任务的建立OSAL是ZSTACK协议栈的核心,ZSTACK的任何一个子系统都作为一个任务,在开发过程中必须要创建OSAL任务来运行应用程序。每一个事件都是通过任务来实现的。如果要在ZSTACK协议栈中添加自己的事件,首先要添加自己的任务。添加任务是在应用层实现的。任务的建立Zstack协议栈里面运行的是OS系统,OS系统中事件的产生和处理是通过任务来实现的。端点是建立一个任务所必不可少的内容,OS系统中可以有多个任务,一个任务可以有多个端点,一个端点包含输入簇和输出簇,并且输入簇和输出簇必须相对应。任务的建立任务的建立初始化系统int main( void )
2、/ 关闭所有中断 osal_int_disable( INTS_ALL ); / 初始化相关硬件 HAL_BOARD_INIT(); / 电源检测 zmain_vdd_check(); / 初始化堆栈 zmain_ram_init(); /初始化i/o InitBoard( OB_COLD ); / 初始化硬件驱动 HalDriverInit(); /初始化NV osal_nv_init( NULL ); / Initialize basic NV items zgInit(); / 初始化MAC ZMacInit(); / 初始化地址 zmain_ext_addr();#ifndef NON
3、WK任务的建立 / AF初始化 afInit();#endif / 初始化操作系统 osal_init_system(); / 开中断 osal_int_enable( INTS_ALL ); / 复位 InitBoard( OB_READY ); /sd rest / 设备硬件初始化 zmain_dev_info(); /* LCD*/#ifdef LCD_SUPPORTED zmain_lcd_init();#endif#ifdef WDT_IN_PM1 /* 看门狗 */ WatchDogEnable( WDTIMX );#endif/ 操作系统开始 osal_start_system(
4、); return ( 0 );任务的建立打开工程,可以看到协调器Coodinator和路由器Router目录下有三个文件,MyfirstAppCoordManage.c、MyfirstAppCoodManage.h和OSAL_MyfirstAppCood.c.任务的添加是在OSAL_MyfirsrAppCood.c文件中添加的。任务的建立打开OSAL_MyfirstAppCoord.c文件,可以看到tasksArr 数组和osalInitTasks函数。在taskArr 数组中存放了所有任务的事件处理函数的地址;osalInitTasks是OSAL的任务初始化函数,所有任务的初始化工作都在这
5、里面完成,并且自动给每个任务分配一个ID。定义任务列表const pTaskEventHandlerFn tasksArr = /MAC层 macEventLoop, /网络层 nwk_event_loop, /硬件抽象层 Hal_ProcessEvent, /APS层 APS_event_loop, /ZDO层 ZDApp_event_loop, /自己添加 My_Task_Process_Event;添加自己的任务void osalInitTasks( void ) uint8 taskID = 0; /分配任务列表 tasksEvents = (uint16 *)osal_mem_all
6、oc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt); /MAC任务 macTaskInit( taskID+ ); /网络层任务 nwk_init( taskID+ ); /HAL任务 Hal_Init( taskID+ ); /APS任务 APS_Init( taskID+ ); /ZDO任务 ZDApp_Init( taskID+ ); /自己添加的任务 My_Task_Init( taskID );任务的建立任务的建立任务添加完了之后就要对所添加的任务和想
7、对应的事件进行初始化。初始化是在MyfirsrAppCoordManage.c文件中。void My_Task_Init( byte task_id ) My_TaskID = task_id; /设置广播目的地址 multi_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;/设置广播地址模式 multi_DstAddr.endPoint = MY_ENDPOINT_NO; multi_DstAddr.addr.shortAddr = 0 xffff; /设置单播信息 Single_DstAddr.addrMode = (afAddrMode_t)
8、Addr16Bit; Single_DstAddr.endPoint = MY_ENDPOINT_NO; /初始化端点描述符 My_EndPoint_Desc.endPoint = MY_ENDPOINT_NO; My_EndPoint_Desc.task_id = &My_TaskID; My_EndPoint_Desc.simpleDesc = (SimpleDescriptionFormat_t*)&My_EndPoint_SimpleDesc; My_EndPoint_Desc.latencyReq = noLatencyReqs; /在AF层注册应用对象(一个端点) afRegist
9、er( &My_EndPoint_Desc ); 相应的事件在事件处理函数中处理UINT16 My_Task_Process_Event(byte task_id,UINT16 events) /当一个消息被发送给任务时,SYS_EVENT_MSG,事件会被传递给任务 /表示有一个消息等待处理。 afIncomingMSGPacket_t *MSGpkt; if ( events & SYS_EVENT_MSG ) /从消息队列中取出消息 MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive(My_TaskID); while ( MSGpkt
10、) switch ( MSGpkt-hdr.event ) /* 当设备成功加入网络以后, ZigBee 设备对象(ZDO)会给所有已经在应用程序框架中注册过的任务 (也就是作为 ZigBee 的应用程序对象存在的任务)发送一个ZDO_STATE_CHANGE消息,消息的状 态指示了当前网络的状态。 */ case ZDO_STATE_CHANGE:/网络状态改变事件 任务的建立 NwkState = (devStates_t)MSGpkt-hdr.status;if ( NwkState = DEV_ZB_COORD ) break; /模块接收到数据信息事件 case AF_INCOMING_MSG_CMD: /处理接收到的数据 My_Task_Process_MSG ( MSGpkt ); break; /按键事件 case KEY_CHANGE: break; default: break; /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 造型的表现力 课件 2024-2025学年人教版初中美术八年级上册
- 人教新目标Go For It!八年级上册 Unit 6 I'm going to study computer science. Section B
- 核电汽轮机的特点
- 常见慢性病的防治
- 2024年四川省宜宾市初二年级学业水平考试地理试卷含答案
- 2014年大输液行业市场分析报告
- 2024至2030年中国成套电控装置数据监测研究报告
- 2013-2016年中国那曲电信移动市场发展状况分析研究报告
- 2024至2030年中国喷油嘴检测清洗仪数据监测研究报告
- 2024至2030年中国单人温步机数据监测研究报告
- 送货简易合同范本(2篇)
- 七年级上册音乐教案 人音版
- 某小区住宅楼工程施工组织设计方案
- 3-4单元测试-2024-2025学年统编版语文六年级上册
- 2025届湖北省武汉市新洲一中阳逻校区高二上数学期末学业水平测试模拟试题含解析
- 2024-2030年中国滨海旅游行业发展分析及投资战略研究咨询报告
- 八年级物理第一次月考卷(考试版A3)(辽宁专用人教版2024第1~3章第2节)
- 小学高年级课后服务 scratch3.0编程教学设计 二阶课程 项目4趣味潜水艇 第4节 躲避障碍教学设计
- Unit 5 Fun Clubs 教学设计2024-2025学年初中英语(人教版浙江专用)七年级上册
- 2024年新人教版数学七年级上册教学课件 4.2 第1课时 合并同类项
- 2024-2030年中国农村商业银行行业市场深度调研及发展趋势与投资前景研究报告
评论
0/150
提交评论