在Z-Stack中,每个应用任务都通过SampleApp_ ProcessEvent()函数来处理
任务中的事件。一旦STPMOlApp_Task工D任务的某个OSAL事件发生,那么就可以
通过调用SampleApp_ ProcessEvent()函数来处理。在SampleApp_ ProcessEvent()
中有一个事件处理循环。每当OSAL事件发生的时候,事件处理函数从OSAL任务
处理循环将依次调用,应用程序的任务事件处理程序的参数是一个16位的位掩码,
函数的调用可以设置一个或多个位,大多数时候只有一个关键事件被调用,而且
几乎SYS一 EVENT_ MSG总是作为最高优先事项。
if(events&SYS EVENT MSG)
MSGpkt
*)osal_ msg_ receive(GenericApp_Task工D
while(MSGpkt)
(af工ncomingMSGPacket-t
switch(MSGpkt一>hdr. event
{
case AF下NCOM下N('T MSG CMD:
STPMOI_ MessageMSGCB(MSGpkt)
break;
当这个信息到达网络目的,接收应用程序对象将通过SYS EVENT MSG进入到
AFJNCOM工NG_MSG_CMD消息。然后进入到STPMOI_ MessageMSGCB( MSGpkt)函数
去处理别的网络节点发送给此节点的数据。
|