我们修改代码主要是在SampleApp.c这个文件夹下面,
SampleApp_ProcessEvent() 用户应用任务的事件处理函数 下面有两个系统消息


消息一SYS_EVENT_MSG 普通的事件
if ( events & SYS_EVENT_MSG ) //接收系统消息再进行判断
//接收属于本应用任务 SampleApp的消息,以 SampleApp_TaskID标记 
MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); 
case KEY_CHANGE://按键事件 
SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys ); 
case AF_INCOMING_MSG_CMD: //接收数据事件,调用函数 AF_DataRequest()接收数据
SampleApp_MessageMSGCB( MSGpkt );   //调用回调函数对收到的数据进行处理 
case ZDO_STATE_CHANGE: //只要网络状态发生改变,就通过 ZDO_STATE_CHANGE 事
件通知所有的任务。同时完成对协调器,路由器,终端的设置 
注意:ZDO_STATE_CHANGE只有当设备网络发生改变后才会触发,所以在此处可做一些
初始化工作;如果网络一直连接的就不会再次进入这个函数了,只执行1次。 


/*初始化定时事件,就是设置发送周期性事件*/
 
 uint8 osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value )
 
 //osal_start_timerEx三个参数决定着周期性发送数据的,timeout_value间隔时间ms,时间到
 
 //才调用SampleApp_SendPeriodicMessage();
 


 //判断SAMPLEAPP_SEND_PERIODIC_MSG_EVT有没有发生,如果有的就执行下面函数 
 
  
 
 系统消息二SAMPLEAPP_SEND_PERIODIC_MSG_EVT// Send a message out - This event is generated by a timer
 
 if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )//时间到了,就触发这个系统消息,然后调用发送周期函数
 


 void SampleApp_SendPeriodicMessage( void )//周期发送函数
 
 {
 
  调用afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP,
 
                            uint16 cID, uint16 len, uint8 *buf, uint8 *transID,
 
                            uint8 options, uint8 radius )
 
 
   
 
 }
 


 void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )//接受函数
 
 void SampleApp_SendPeriodicMessage( void )//周期发送函数
 
 SampleApp_SendFlashMessage(0);  //发数据  
 
 调用 zb_BindDeviceRequest( )函数可以创建一个绑定条目

我们修改代码主要是在SampleApp.c这个文件夹下面,

SampleApp_ProcessEvent() 用户应用任务的事件处理函数 下面有两个系统消息


消息一SYS_EVENT_MSG 普通的事件
 
 if ( events & SYS_EVENT_MSG ) //接收系统消息再进行判断
 
 //接收属于本应用任务 SampleApp的消息,以 SampleApp_TaskID标记 
 
 MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); 
 
 case KEY_CHANGE://按键事件 
 
 
 SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys ); 
 
 case AF_INCOMING_MSG_CMD: //接收数据事件,调用函数 AF_DataRequest()接收数据
 
 
 SampleApp_MessageMSGCB( MSGpkt );   //调用回调函数对收到的数据进行处理 
 
 case ZDO_STATE_CHANGE: //只要网络状态发生改变,就通过 ZDO_STATE_CHANGE 事


件通知所有的任务。同时完成对协调器,路由器,终端的设置 


注意:ZDO_STATE_CHANGE只有当设备网络发生改变后才会触发,所以在此处可做一些


初始化工作;如果网络一直连接的就不会再次进入这个函数了,只执行1次。 


/*初始化定时事件,就是设置发送周期性事件*/
 
 uint8 osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value )
 
 //osal_start_timerEx三个参数决定着周期性发送数据的,timeout_value间隔时间ms,时间到
 
 //才调用SampleApp_SendPeriodicMessage();
 


 //判断SAMPLEAPP_SEND_PERIODIC_MSG_EVT有没有发生,如果有的就执行下面函数 
 
  
 
 系统消息二SAMPLEAPP_SEND_PERIODIC_MSG_EVT// Send a message out - This event is generated by a timer
 
 if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )//时间到了,就触发这个系统消息,然后调用发送周期函数
 


 void SampleApp_SendPeriodicMessage( void )//周期发送函数
 
 {
 
  调用afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP,
 
                            uint16 cID, uint16 len, uint8 *buf, uint8 *transID,
 
                            uint8 options, uint8 radius )
 
 
   
 
 }
 


 void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )//接受函数
 
 void SampleApp_SendPeriodicMessage( void )//周期发送函数
 
 SampleApp_SendFlashMessage(0);  //发数据

调用 zb_BindDeviceRequest( )函数可以创建一个绑定条目