Sampleapp函数解析.docVIP

  • 11
  • 0
  • 约8.74千字
  • 约 7页
  • 2015-10-16 发布于河南
  • 举报
Sampleapp函数解析

Z-Stack1.4.3-1.2.1中SampleApp中重要函数解析 (2010-11-30 10:26) 分类: ZigBee 技术学习 在上几篇文章中我们分析了,整个OSAL的流程,还有添加自己的任务,以及如何运行到自己定义的任务。这一篇文章主要是分析一下,自己定义的任务中要完成的功能,需要的事件函数是怎样的。 这个例子就是一个简单的点对点的数据发送,其中涉及到较少的网络配置,其中最主要的两个函数是SampleApp_ProcessEvent(uint8 task_id,uint16 events),和SampleApp_Init(taskID),一个是任务的处理函数,一个是初始化函数。SampleApp_Init(taskID)这个函数在前面的文章中也已经分析过了,现在主要关注一下SampleApp_ProcessEvent(uint8 task_id,uint16 events)函数的实现。 每个应用任务都通过SampleApp_ProcessEvent()函数来处理任务中的事件。一旦SampleApp_TaskID任务的某个OSAL 事件发生,那么就可以通过调用SampleApp_ProcessEvent()函数来处理。在SampleApp_ProcessEvent()中有一个事件处理循环,循环检测是哪个事件发生。 /********************************************************************* * @fnSampleApp_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. * 这个函数被用来调用处理所有的事件,事件有定时器消息用户自己定义的 * @paramtask_id - The OSAL assigned task ID.任务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; //系统事件号 SYS_EVENT_MSG = 0x8000 if ( events SYS_EVENT_MSG ) { //检索收到的命令,没有收到返回NULL MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); while ( MSGpkt ) //如果不为空时,判断消息的类型 { switch ( MSGpkt-hdr.event ) //这里是判断SYS_EVENT_MSG事件类型,不同的SYS_EVENT_MSG类型需要不同的处理。 { /* Received when a key is pressed这里判断是否是键盘事件,如果键盘事件就调用键盘处理函数。 如果一个OSAL任务已经被登记组侧,那么任何键盘事件都将接受一个KEY_CHANGE事件信息。可能有如下几种方式得到键盘事件信息 1)、HAL检测到键盘按下(中断或者查询检测) 2)、HAL的OSAL任务检测到一个键盘状态改变调用回叫函数产生 3)、OSAL键盘改变回叫函数发送一个OSAL系统事件信息(KEY_CHANGE)。*/ 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 网络中的设备状态发生改变时,产

文档评论(0)

1亿VIP精品文档

相关文档