第5章zigbee协议栈应用与组网13基于genericapp无线收发实验_第1页
第5章zigbee协议栈应用与组网13基于genericapp无线收发实验_第2页
第5章zigbee协议栈应用与组网13基于genericapp无线收发实验_第3页
第5章zigbee协议栈应用与组网13基于genericapp无线收发实验_第4页
第5章zigbee协议栈应用与组网13基于genericapp无线收发实验_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于GenericApp硬件:PC 一 两仿真 一软件:XP/win7/8/8.1IAR8.10端收到后Led1也闪烁。工程路径:CC2530\第5章zigbee协议栈应用与组网\13.基于GenericApp无线收发实验一 分析#include#include"hal_drivers.h"//硬件驱动头#include //操作系统头文件#include //操作系统任务头文件#ifdefinedMT_TASK //串口应用头文件#include#include#include //网络层头文件#include //应用支持层头文件#include //设备对象头文件#ifdefined(ZIGBEE_FREQ_AGILITY)||defined(ZIGBEE_PANID_#include#ifdefined(ZIGBEE_FRAGMENTATION#include#includeconstpTaskEventHandlerFntasksArr[]= //MAC任务循 //网络层任务函数 //硬件层函数#ifdefined(MT_TASK //串口支持层定义 //应用支持层任务函#ifdefined(ZIGBEE_FRAGMENTATION //设备对象层函数#ifdefined(ZIGBEE_FREQ_AGILITY)||defined(ZIGBEE_PANID_ //自己定义的任务处理函数36.const t=sizeof(tasksArr)/sizeof(tasksArr[0]uint16voidosalInitTasksvoid完成了任务ID的分配,以及所有任务的{uint8taskID=//分配内存空间tasksEvents=(uint16*)osal_mem_alloc(sizeof(uint16) osal_memset(tasksEvents,0,(sizeof(uint16) makInit(taskID++);//MAC层的任务IDnwk_init(taskID++ //网络ID分配Hal_Init(taskID++ //硬件ID分配#ifdefined(MT_TASKMT_TaskInit(taskID++APS_Init(taskID++#ifdefined(ZIGBEE_FRAGMENTATIONAPSF_Init(taskID++ZDApp_Init(taskID++#ifdefined(ZIGBEE_FREQ_AGILITY)||defined(ZIGBEE_PANID_ZDNwkMgr_Init(taskID++GenericApp_Init(taskID);//自己任务初始化函59.应的任务处理函数,该数组的顺序必须和osalInitTasks函数的初始化顺序相同。第37 (二 协调器源码分#include#include#include#include#include#include#include#if!defined(WIN32#include/*HAL#include#include#include#include#includeconstcId_tGenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS]{20.constSimpleDescriptionFormat_tGenericApp_SimpleDesc{ //int //uint16 //uint16 // // //byte(cId_t*)GenericApp_ClusterList,//byte //byte(cId_t //byte32.endPointDesc_tbytebytevoid ingMSGPacket_t*pcktvoidvoidGenericApp_Init(bytetask_id{GenericApp_TaskID=task_id;//osal分配的任务ID随着用户添加任务的增多而改变GenericApp_TransID=0;//消息发送ID(多消息时有顺序之分//定义本设备用来通信的APS层端点描述符GenericApp_epDesc.endPoint=GENERICAPP_ENDPOINT;//应用程序的端GenericApp_epDesc.task_id&GenericApp_TaskID;//描述符的任务 //简单描述符 =(SimpleDescriptionFormat_tGenericApp_epDesc.latencyReq //延时策afRegister(&GenericApp_epDesc //向AF层登记描述符49.UINT16GenericApp_ProcessEvent(bytetask_id,UINT16events{ingMSGPacket_tif(events&SYS_EVENT_MSG{MSGpkt= ingMSGPacket_t*)osal_msg_receive(GenericApp_TaskIDwhile(MSGpkt{switch(MSGpkt->hdr.event{ osal_msg_deallocate((uint8*)MSGpktMSGpkt= ingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID}return(events^}return72.void ingMSGPacket_t{unsignedcharswitch(pkt->clusterId{caseosal_memset(buf,0,osal_memcpy(buf,pkt->cmd.Data,if(buf[0]=='D'&&{HalLedBlink(HAL_LED_1,0,50, {HalLedSet(HAL_LED_1, }92.void{byteafAddrType_t}1-16第17-20行{#define 1#define 21-32ID、设备描述的版本、终端支持的输入簇数目33行endPointDesc_tGenericApp_epDesc;//34byteGenericApp_TaskID;//osalID35行byteGenericApp_TransID;消息发送ID(多消息时有顺序之分第38-49行GenericApp_InitvoidGenericApp_Init(bytetask_id{ GenericApp_TaskID=task_id;//osal分配的任务ID随着用户添加任务的增多而GenericApp_TransID=0;//消息发送ID(多消息时有顺序之分//定义本设备用来通信的APS层端点描述符GenericApp_epDesc.endPoint=GENERICAPP_ENDPOINT;//应用程序的端GenericApp_epDesc.task_id&GenericApp_TaskID;//描述符的任务 //简单描述符 =(SimpleDescriptionFormat_tGenericApp_epDesc.latencyReq= //延时策afRegister(&GenericApp_epDesc //向AF层登记描述符49.第50-72行处理函UINT16GenericApp_ProcessEvent(bytetask_id,UINT16events{ingMSGPacket_tifevents&SYS_EVENT_MSG判断是否是{MSGpkt= ingMSGPacket_t*)osal_msg_receive(while(MSGpkt{switch(MSGpkt->hdr.event{ }osal_msg_deallocate((uint8*)MSGpktMSGpkt= ingMSGPacket_t*)osal_msg_receive( return(events^}return72.第73-92接收数void ingMSGPacket_t{unsignedcharswitch(pkt->clusterId{caseosal_memset(buf,0 //数组初始化osal_memcpy(buf,pkt->cmd.Data,2);//拷贝数据到数组if(buf[0]=='D&& //比较数据{HalLedBlink(HAL_LED_1,050500);//Led1闪 //发送数据 {HalLedSet(HAL_LED_1, }92.第73-92发送数void{byteafAddrType_tdevDstAddr;//设置发送模式、端点号、//无线发送数据}以上代码是在TIGenericApp例程过来的,我们对GenericApp.c中的代码进行了裁剪,帮助大家更容易掌握GenericApp,同时我们把协调器和终端的代码独立开,让初学者不易。明白了其中的原理后,再去三 终端源码分devStates_tGenericApp_NwkState;/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论