/*************************************************************************************************** * @fn MT_ProcessEvent * * @brief MonitorTest Task Event Processor. This task is put into the task table. * * @param byte task_id - task ID of the MT Task * @param UINT16 events - event(s) for the MT Task * * @return void ***************************************************************************************************/ UINT16 MT_ProcessEvent(uint8 task_id, uint16 events) { uint8 *msg_ptr; (void)task_id; // Intentionally unreferenced parameter /* Could be multiple events, so switch won't work */ if ( events & SYS_EVENT_MSG ) { while ( (msg_ptr = osal_msg_receive( MT_TaskID )) ) { MT_ProcessIncomingCommand((mtOSALSerialData_t *)msg_ptr); } /* Return unproccessed events */ return (events ^ SYS_EVENT_MSG); } if ( events & MT_ZTOOL_SERIAL_RCV_BUFFER_FULL ) { /* Return unproccessed events */ return (events ^ MT_ZTOOL_SERIAL_RCV_BUFFER_FULL); } /* Handle MT_SYS_OSAL_START_TIMER callbacks */ #if defined MT_SYS_FUNC if ( events & (MT_SYS_OSAL_EVENT_MASK)) { if (events & MT_SYS_OSAL_EVENT_0) { MT_SysOsalTimerExpired(0x00); events ^= MT_SYS_OSAL_EVENT_0; } if (events & MT_SYS_OSAL_EVENT_1) { MT_SysOsalTimerExpired(0x01); events ^= MT_SYS_OSAL_EVENT_1; } if (events & MT_SYS_OSAL_EVENT_2) { MT_SysOsalTimerExpired(0x02); events ^= MT_SYS_OSAL_EVENT_2; } if (events & MT_SYS_OSAL_EVENT_3) { MT_SysOsalTimerExpired(0x03); events ^= MT_SYS_OSAL_EVENT_3; } return events; } #endif /* Discard or make more handlers */ return 0; } /* MT_ProcessEvent() */
/************************************************************************************************** * @fn MT_ProcessEvent * * @brief MonitorTest Task Event Processor. This task is put into the task table. * * @param task_id - task ID of the MT Task * @param events - event(s) for the MT Task * * @return Bit mask of the unprocessed MT Task events. **************************************************************************************************/ UINT16 MT_ProcessEvent(uint8 task_id, uint16 events) { /* Could be multiple events, so switch won't work */ if ( events & SYS_EVENT_MSG ) { uint8 *msg_ptr = osal_msg_receive(task_id); if (msg_ptr != NULL) { MT_ProcessIncomingCommand((mtOSALSerialData_t *)msg_ptr); osal_msg_deallocate(msg_ptr); } /* Return unproccessed events */ return (events ^ SYS_EVENT_MSG); } if ( events & MT_SECONDARY_INIT_EVENT ) { MT_Init(task_id); /* Return unproccessed events */ return (events ^ MT_SECONDARY_INIT_EVENT); } if ( events & MT_ZTOOL_SERIAL_RCV_BUFFER_FULL ) { /* Return unproccessed events */ return (events ^ MT_ZTOOL_SERIAL_RCV_BUFFER_FULL); } #if !defined( NONWK ) if ( events & MT_AF_EXEC_EVT ) { MT_AfExec(); return (events ^ MT_AF_EXEC_EVT); } #endif /* NONWK */ /* Handle MT_SYS_OSAL_START_TIMER callbacks */ #if defined MT_SYS_FUNC if ( events & (MT_SYS_OSAL_EVENT_MASK)) { if (events & MT_SYS_OSAL_EVENT_0) { MT_SysOsalTimerExpired(0x00); events ^= MT_SYS_OSAL_EVENT_0; } if (events & MT_SYS_OSAL_EVENT_1) { MT_SysOsalTimerExpired(0x01); events ^= MT_SYS_OSAL_EVENT_1; } if (events & MT_SYS_OSAL_EVENT_2) { MT_SysOsalTimerExpired(0x02); events ^= MT_SYS_OSAL_EVENT_2; } if (events & MT_SYS_OSAL_EVENT_3) { MT_SysOsalTimerExpired(0x03); events ^= MT_SYS_OSAL_EVENT_3; } return events; } #endif #ifdef MT_SRNG if(events & MT_SRNG_EVENT) { MT_ProcessSrngEvent(); return (events ^ MT_SRNG_EVENT); } #endif /* Discard or make more handlers */ return 0; } /* MT_ProcessEvent() */