




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除SappleApp.c#include OSAL.h#include ZGlobals.h#include AF.h#include aps_groups.h#include ZDApp.h#include SampleApp.h#include SampleAppHw.h#include OnBoard.h/* HAL */#include hal_lcd.h#include hal_led.h#include hal_key.h#include string.h#include MT_UART.h/#include Lcd128X64.h#include UtOled.h#include sensor.h#include HAL_ADC.h#include exsensor.h#include lcd128_64.hconst cId_t SampleApp_ClusterListSAMPLEAPP_MAX_CLUSTERS = SAMPLEAPP_PERIODIC_CLUSTERID, SAMPLEAPP_FLASH_CLUSTERID;const SimpleDescriptionFormat_t SampleApp_SimpleDesc = SAMPLEAPP_ENDPOINT, / int Endpoint; SAMPLEAPP_PROFID, / uint16 AppProfId2; SAMPLEAPP_DEVICEID, / uint16 AppDeviceId2; SAMPLEAPP_DEVICE_VERSION, / int AppDevVer:4; SAMPLEAPP_FLAGS, / int AppFlags:4; SAMPLEAPP_MAX_CLUSTERS, / uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList, / uint8 *pAppInClusterList; SAMPLEAPP_MAX_CLUSTERS, / uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList / uint8 *pAppInClusterList;endPointDesc_t SampleApp_epDesc;uint8 SampleApp_TaskID;devStates_t SampleApp_NwkState;uint8 SampleApp_TransID; uint8 changeline2=0x0a,0x0d;union h uint8 RxBuf70; Union_DATA RXDATA;UartRxBuf;/串口接收缓冲区union e uint8 TxBuf70; Union_DATA TXDATA;UartTxBuf;/串口发送缓冲区union f uint8 RxBuf70; Union_DATA RXDATA;RfRx;/无线接收缓冲区union g uint8 TxBuf70; Union_DATA TXDATA;RfTx;/无线接收缓冲区void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pckt );void SampleApp_SendData(unsigned char buff,uint8 length);static void rxCB(uint8 port, uint8 event);void SampleApp_Init( uint8 task_id ) halUARTCfg_t uartConfig; SampleApp_TaskID = task_id; SampleApp_NwkState = DEV_INIT; SampleApp_TransID = 0; SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_epDesc.task_id = &SampleApp_TaskID; SampleApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc; SampleApp_epDesc.latencyReq = noLatencyReqs; afRegister( &SampleApp_epDesc ); RegisterForKeys( SampleApp_TaskID ); MT_UartRegisterTaskID(SampleApp_TaskID); LCDInit(); ClearScreen(); Print(0,10,COORDINATOR,1); Print(2,5,ZhangHang,1); Print(4,5,FengGuangWen,1); Print(6,5,YaoJiaDong,1); uartConfig.configured = TRUE; uartConfig.baudRate = HAL_UART_BR_115200; uartConfig.flowControl = FALSE; uartConfig.callBackFunc = rxCB ; /uartConfig.callBackFunc = NULL ; HalUARTOpen( 0, &uartConfig);uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) afIncomingMSGPacket_t *MSGpkt; (void)task_id;if ( events & SYS_EVENT_MSG )MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );while ( MSGpkt )switch ( MSGpkt-hdr.event )case ZDO_STATE_CHANGE:SampleApp_NwkState = (devStates_t)(MSGpkt-hdr.status); HalLedBlink(0x02,0,50,500); uint8 *buff; buff0=A; buff1=B; buff2=C; HalUARTWrite(0,buff,3); HalUARTWrite(0,changeline,2);break; case AF_INCOMING_MSG_CMD: HalLedBlink(0x01,0,50,500);SampleApp_MessageMSGCB( MSGpkt ); break; /*case SPI_INCOMING_ZTOOL_PORT: HalLedBlink(0x02,0,50,500); rxCBX();*/default:break;osal_msg_deallocate( (uint8 *)MSGpkt );MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );return (events SYS_EVENT_MSG);return 0;static uint8 SerialApp_TxLen;void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) unsigned char buffer42; osal_memcpy(buffer,pkt-cmd.Data ,42); HalUARTWrite(0,buffer,42); HalUARTWrite(0,changeline,2); /* unsigned char buffer100; osal_memcpy(buffer,pkt-cmd.Data ,100); SerialApp_TxLen=HalUARTRead(0,buffer,100); HalUARTWrite(0,buffer,SerialApp_TxLen); HalUARTWrite(0,changeline,2); */ void SampleApp_SendData(uint8 buff,uint8 length) afAddrType_t SendDataAddr;SendDataAddr.addrMode = (afAddrMode_t)AddrBroadcast;SendDataAddr.endPoint = SAMPLEAPP_ENDPOINT;SendDataAddr.addr.shortAddr = 0xffff; AF_DataRequest( &SendDataAddr, &SampleApp_epDesc, 2, length, buff, &SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ); static void rxCB(uint8 port, uint8 event) uint8 length = Hal_UART_RxBufLen(0); uint8 *buff; buff = osal_mem_alloc(length); HalUARTRead(0,buff,length); if(length!=0) SampleApp_SendData(buff,length); Printn8(5,5,length,1,3); osal_mem_free(buff);Router.c#include OSAL.h#include ZGlobals.h#include AF.h#include aps_groups.h#include ZDApp.h#include SampleApp.h#include SampleAppHw.h#include OnBoard.h#include ioCC2530.h/* HAL */#include hal_lcd.h#include hal_led.h#include hal_key.h#include string.h#include MT_UART.h/#include Lcd128X64.h#include UtOled.h#include sensor.h#include HAL_ADC.h#include exsensor.h#include lcd128_64.hconst cId_t SampleApp_ClusterListSAMPLEAPP_MAX_CLUSTERS = SAMPLEAPP_PERIODIC_CLUSTERID, SAMPLEAPP_FLASH_CLUSTERID;const SimpleDescriptionFormat_t SampleApp_SimpleDesc = SAMPLEAPP_ENDPOINT, / int Endpoint; SAMPLEAPP_PROFID, / uint16 AppProfId2; SAMPLEAPP_DEVICEID, / uint16 AppDeviceId2; SAMPLEAPP_DEVICE_VERSION, / int AppDevVer:4; SAMPLEAPP_FLAGS, / int AppFlags:4; SAMPLEAPP_MAX_CLUSTERS, / uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList, / uint8 *pAppInClusterList; SAMPLEAPP_MAX_CLUSTERS, / uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList / uint8 *pAppInClusterList;endPointDesc_t SampleApp_epDesc;uint8 SampleApp_TaskID;devStates_t SampleApp_NwkState;uint8 SampleApp_TransID; uint8 myMac16;/物理地址uint8 myShort4;/本节点网络地址uint8 temp; uint16 NWK;uint8 readbuf50;uint8 sendbuf50;uint8 changeline2=0x0a,0x0d;uint8 LEDSTATE =1;uint8 LEDSTATE5=1;uint8 LEDSTATE6=1;uint8 PEOPLE=0;uint8 PEOPLE1=0;uint8 PEOPLE2=0;uint8 LIGHT=115;int timexx1=0;int timexx2=0;union h uint8 RxBuf70; Union_DATA RXDATA;UartRxBuf;/串口接收缓冲区union e uint8 TxBuf70; Union_DATA TXDATA;UartTxBuf;/串口发送缓冲区union f uint8 RxBuf70; Union_DATA RXDATA;RfRx;/无线接收缓冲区union g uint8 TxBuf70; Union_DATA TXDATA;RfTx;/无线接收缓冲区typedef struct RFTXBUF uint8 myNWK4; uint8 myMAC16; uint8 pNWK4; uint8 pMAC16;RFTX;void SampleApp_HandleKey( uint8 shift, uint8 keys );void SampleApp_SendData(void);void DataPack(void);void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt );void ToString(uint8 *dest, char *src ,uint8 length);void ShowScreen(void);void HalInit(void);void DoLight(void);void SampleApp_Init( uint8 task_id ) halUARTCfg_t uartConfig; SampleApp_TaskID = task_id; SampleApp_NwkState = DEV_INIT; SampleApp_TransID = 0; SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_epDesc.task_id = &SampleApp_TaskID; SampleApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc; SampleApp_epDesc.latencyReq = noLatencyReqs; afRegister( &SampleApp_epDesc ); RegisterForKeys( SampleApp_TaskID ); MT_UartRegisterTaskID(SampleApp_TaskID); HalInit(); uartConfig.configured = TRUE; uartConfig.baudRate = HAL_UART_BR_115200; uartConfig.flowControl = FALSE; uartConfig.callBackFunc = NULL; HalUARTOpen( 0, &uartConfig);uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) afIncomingMSGPacket_t *MSGpkt; (void)task_id;if ( events & SYS_EVENT_MSG )MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );while ( MSGpkt )switch ( MSGpkt-hdr.event )case ZDO_STATE_CHANGE:SampleApp_NwkState = (devStates_t)(MSGpkt-hdr.status); if(SampleApp_NwkState = DEV_ROUTER) HalLedBlink(0x02,0,50,500); / DataPack(); / osal_set_event(SampleApp_TaskID,SEND_DATA_EVENT); / osal_set_event(SampleApp_TaskID,SHOW_DATA_EVENT); / osal_set_event(SampleApp_TaskID,LIGHT_EVENT); / ClearScreen(); uint8 *buff; buff0=A; buff1=B; buff2=C; HalUARTWrite(0,buff,3); HalUARTWrite(0,changeline,2); break; case AF_INCOMING_MSG_CMD: HalLedBlink(0x01,0,50,500); SampleApp_MessageMSGCB(MSGpkt); break;default:break;osal_msg_deallocate( (uint8 *)MSGpkt );MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); return (events SYS_EVENT_MSG); if(events & SEND_DATA_EVENT) SampleApp_SendData(); osal_start_timerEx(SampleApp_TaskID,SEND_DATA_EVENT,1000); return (events SEND_DATA_EVENT); if(events & SHOW_DATA_EVENT) ShowScreen(); DataPack(); DoLight(); osal_start_timerEx(SampleApp_TaskID,SHOW_DATA_EVENT,100); return (events SHOW_DATA_EVENT); return 0;void DataPack(void) sendbuf0=&;sendbuf1=S; /数据包头包括节点类型 sendbuf2=C;sendbuf3=U; sendbuf4=R;sendbuf5=O; sendbuf6=3; ToString(myMac,NLME_GetExtAddr(),8); / 物理地址 for(int i=7;i=22;i+)sendbufi=myMaci-7; NWK= NLME_GetShortAddr(); /网络地址 ToString(myShort,(uint8 *)&NWK,2); for(int i=23;i=26;i+)sendbufi=myShorti-23; temp=ReadTemp(); /温度信息 sendbuf27=temp/10+0; sendbuf28=temp%10+0; unsigned char adc=HalAdcRead(0x00,1); /光感传感器值 sendbuf29=adc/100+0; sendbuf30=(adc/10)%10+0; sendbuf31=adc%10+0; sendbuf32=LEDSTATE + 0; /总灯光控制 sendbuf33=LEDSTATE5+ 0; /两路灯光控制 sendbuf34=LEDSTATE6+ 0; PEOPLE=P0_4; /来人检测 sendbuf35= PEOPLE + 0; sendbuf36=LIGHT; /光感阙值 用于判断灯的亮否 for(int i=37;icmd.Data,42); /张航 unsigned char buffer42; osal_memcpy(buffer,pkt-cmd.Data ,42); HalUARTWrite(0,buffer,42); HalUARTWrite(0,changeline,2); /* unsigned char buffer100; osal_memcpy(buffer,pkt-cmd.Data ,100); SerialApp_TxLen=HalUARTRead(0,buffer,100); HalUARTWrite(0,buffer,SerialApp_TxLen); HalUARTWrite(0,changeline,2); */ /任意长度字符串 /* if(buff5=O&buff6=3) /uint8 changeline2=0x0A,0x0D; /HalUARTWrite(0,buff,42); /HalUARTWrite(0,changeline,2); if(buff32=0)LEDSTATE =0; else LEDSTATE =1; if(buff33=0)LEDSTATE5=0; else LEDSTATE5=1; if(buff34=0)LEDSTATE6=0; else LEDSTATE6=1; if(buff35=0)PEOPLE=0; else PEOPLE=1; LIGHT=buff36; */void ToString(uint8 *dest, char *src ,uint8 length) uint8 *xad; uint8 i = 0; uint8 ch; xad = src +length -1; for(i=0;i4)&0x0f; desti1=ch+(ch10)?0:7); ch=*xad & 0x0f; dest(i1)+1=ch+(chLIGHT) if(timexx120) if(PEOPLE=0)P0_5=1; timexx1=0; goto ll; if(PEOPLE=1)P0_5=0;timexx1=0; else if(PEOPLE=0)timexx1+; else P0_5=1; ll :; if(LEDSTATE6=0)P0_6=1; else if(LEDSTATE6=1) if(adcLIGHT) if(timexx220) if(PEOPLE=0)P0_6=1; timexx2=0; goto xx; if(PEOPLE=1)P0_6=0;timexx2=0; else if(PEOPLE=0)timexx2+; else P0_6=1; xx:; Enddevice.c#include OSAL.h#include ZGlobals.h#include AF.h#include aps_groups.h#include ZDApp.h#include SampleApp.h#include SampleAppHw.h#include OnBoard.h/* HAL */#include hal_lcd.h#include hal_led.h#include hal_key.h#include string.h#include MT_UART.h/#include Lcd128X64.h#include UtOled.h#include sensor.h#include HAL_ADC.h#include exsensor.h#include lcd128_64.hconst cId_t SampleApp_ClusterListSAMPLEAPP_MAX_CLUSTERS = SAMPLEAPP_PERIODIC_CLUSTERID, SAMPLEAPP_FLASH_CLUSTERID;const SimpleDescriptionFormat_t SampleApp_SimpleDesc = SAMPLEAPP_ENDPOINT, / int Endpoint; SAMPLEAPP_PROFID, / uint16 AppProfId2; SAMPLEAPP_DEVICEID, / uint16 AppDeviceId2; SAMPLEAPP_DEVICE_VERSION, / int AppDevVer:4; SAMPLEAPP_FLAGS, / int AppFlags:4; SAMPLEAPP_MAX_CLUSTERS, / uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList, / uint8 *pAppInClusterList; SAMPLEAPP_MAX_CLUSTERS, / uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList / uint8 *pAppInClusterList;endPointDesc_t SampleApp_epDesc;uint8 SampleApp_TaskID;devStates_t SampleApp_NwkState;uint8 SampleApp_TransID; uint8 myMac16;/物理地址uint8 myShort4;/本节点网络地址uint8 temp; uint16 NWK;uint8 readbuf50;uint8 sendbuf50;uint8 changeline2=0x0a,0x0d;uint8 LEDSTATE=0;uint8 PEOPLE=0;union h uint8 RxBuf70; Union_DATA RXDATA;UartRxBuf;/串口接收缓冲区union e uint8 TxBuf70; Union_DATA TXDATA;UartTxBuf;/串口发送缓冲区union f uint8 RxBuf70; Union_DATA RXDATA;RfRx;/无线接收缓冲区union g uint8 TxBuf70; Union_DATA TXDATA;RfTx;/无线接收缓冲区typedef struct RFTXBUF uint8 myNWK4; uint8 myMAC16; uint8 pNWK4; uint8 pMAC16;RFTX;void SampleApp_HandleKey( uint8 shift, uint8 keys );void SampleApp_SendData(void);void DataPack(void);void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt );void ToString(uint8 *dest, cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 子宫收缩力的课件
- 年度安全教育培训材料课件
- 工业电工安全培训课件
- 子产坏晋馆垣课件
- 年底安全培训会议讲话课件
- 2024年攀枝花市事业单位招聘考试真题
- 年初培训课件结束语
- 威固超级销售课件
- 委托培训合同与安全管理课件
- 平面向量测量课件
- 《归园田居(其一)》《登高》《梦游天姥吟留别》联读课件 统编版高中语文必修上册
- 【语法】形容词的最高级-完整版课件
- 企业职工基本养老保险待遇申报表
- 幼儿园大班数学:《层级分类》 课件
- 质量管理体系建立运行情况报告
- 涉河建设项目审查管理体会及探讨课件-涉河建设项目管理及建设方案审查技术标准课件
- DB44∕T 1168-2013 轮扣式钢管脚手架构件
- 世界汽车工业课件
- 单层工业厂房设计(全部)PPT课件.ppt
- 第二章_平面机构的平衡
- elements-of-communication
评论
0/150
提交评论