无线传感网络课程设计 联系客服

发布时间 : 星期日 文章无线传感网络课程设计更新完毕开始阅读

#if defined ( HOLD_AUTO_START )

// HOLD_AUTO_START is a compile option that will surpress ZDApp // from starting the device and wait for the application to // start the device. ZDOInitDevice(0); #endif

// Fill out the endpoint description.

SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_epDesc.task_id = &SampleApp_TaskID; SampleApp_epDesc.simpleDesc

= (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc; SampleApp_epDesc.latencyReq = noLatencyReqs;

// Register the endpoint description with the AF afRegister( &SampleApp_epDesc );

// Register for all key events - This app will handle all key events RegisterForKeys( SampleApp_TaskID );

#ifdef WXL_COORD

MT_UartRegisterTaskID(SampleApp_TaskID); #endif }

/********************************************************************* * @fn SampleApp_ProcessEvent *

* @brief Generic Application Task event processor. This function * is called to process all events for the task. Events

* include timers, messages and any other user defined events. *

* @param task_id - The OSAL assigned task ID.

* @param events - events to process. This is a bit map and can * contain more than one event. *

* @return none */

uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) { afIncomingMSGPacket_t *MSGpkt;

uint16 temp1;

#if (defined(WXL_ROUTER) || defined(WXL_RFD))//ROUTER OR RFD uint16 SrcSaddr; #endif (void)task_id; // Intentionally unreferenced parameter if ( events & SYS_EVENT_MSG ) { MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); while ( MSGpkt ) { switch ( MSGpkt->hdr.event ) { // Received when a key is pressed case KEY_CHANGE: SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys ); break; // Received when a messages is received (OTA) for this endpoint case AF_INCOMING_MSG_CMD: SampleApp_MessageMSGCB( MSGpkt ); break; // Received whenever the device changes state in the network case ZDO_STATE_CHANGE: SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status); if ( (SampleApp_NwkState == DEV_ZB_COORD) || (SampleApp_NwkState == DEV_ROUTER) || (SampleApp_NwkState == DEV_END_DEVICE) ) { HalLedSet( HAL_LED_1,HAL_LED_MODE_ON ); #ifdef WXL_COORD ugOled9616int();

LcdPutString16_8(0, 0, (void*)\ //osal_start_timerEx( SampleApp_TaskID, //SAMPLEAPP_RUN__EVT, //SAMPLEAPP_RUN_TIMEOUT );//启动超时定时器 #endif

#ifdef WXL_RFD memset(RfTx.TxBuf,'x',32); RfTx.TXDATA.Head = '&'; RfTx.TXDATA.HeadCom[0] = 'J'; RfTx.TXDATA.HeadCom[1] = 'O'; RfTx.TXDATA.HeadCom[2] = 'N'; ieeeAddr = NLME_GetExtAddr(); memcpy(RfTx.TXDATA.Laddr,ieeeAddr,8); SrcSaddr = NLME_GetShortAddr(); RfTx.TXDATA.Saddr[0] = SrcSaddr; RfTx.TXDATA.Saddr[1] = SrcSaddr>>8; RfTx.TXDATA.DataBuf[0] = 'R'; RfTx.TXDATA.DataBuf[1] = 'F'; RfTx.TXDATA.DataBuf[2] = 'D'; NLME_GetCoordExtAddr(&RfTx.TXDATA.DataBuf[3]); temp1 = NLME_GetCoordShortAddr();

RfTx.TXDATA.DataBuf[11] = (unsigned char)(temp1>>8);

RfTx.TXDATA.DataBuf[12] = (unsigned char)(temp1); RfTx.TXDATA.DataBuf[13] = SensorNum; RfTx.TXDATA.LastByte = '*'; SendData(0x0000, RfTx.TxBuf, 32);//发送自己的节点信息到主机

if((SensorNum == 1) || (SensorNum == 2))//点阵屏或数码管屏 { init_T3();//打开定时器3开始扫描 } else if(SensorNum == 9)//振动传感器 { IEN1 |= 0x20; //Port 0 interrupt enable } osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, SAMPLEAPP_1000MS_TIMEOUT );//每秒检测一次红外传感器 #endif

#ifdef WXL_ROUTER memset(RfTx.TxBuf,'x',32); RfTx.TXDATA.Head = '&'; RfTx.TXDATA.HeadCom[0] = 'J'; RfTx.TXDATA.HeadCom[1] = 'O'; RfTx.TXDATA.HeadCom[2] = 'N'; RfTx.TXDATA.Saddr[1] SrcSaddr>>8; temp1 NLME_GetCoordShortAddr();

RfTx.TXDATA.DataBuf[11] (unsigned char)(temp1>>8);

RfTx.TXDATA.DataBuf[12] (unsigned char)(temp1);

RfTx.TXDATA.DataBuf[13] SensorNum;

RfTx.TXDATA.LastByte = '*'; 息到主机

if((SensorNum == 2))//点阵屏或数码管屏 ieeeAddr = NLME_GetExtAddr(); memcpy(RfTx.TXDATA.Laddr,ieeeAddr,8); SrcSaddr = NLME_GetShortAddr(); RfTx.TXDATA.Saddr[0] = SrcSaddr; = RfTx.TXDATA.DataBuf[0] = 'R'; RfTx.TXDATA.DataBuf[1] = 'O'; RfTx.TXDATA.DataBuf[2] = 'U'; NLME_GetCoordExtAddr(&RfTx.TXDATA.DataBuf[3]); = = = = SendData(0x0000, RfTx.TxBuf, 32);//发送自己的节点信== 1) || (SensorNum { init_T3();//打开定时器3开始扫描 } else if(SensorNum == 9)//振动传感器 { IEN1 |= 0x20; //Port 0 interrupt enable }