/************************************************************************** * * Copyright (c) 2019-2019 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file TaskGeneral.c * * @date 19-Sep-2019 * @author S. Nash * * @brief General task handler. * **************************************************************************/ #include "gio.h" #include "lin.h" #include "Common.h" #include "AlarmLamp.h" #include "OperationModes.h" #include "SystemComm.h" #include "WatchdogMgmt.h" #include "TaskGeneral.h" #ifdef RM46_EVAL_BOARD_TARGET #include "CPLD.h" #include "SystemCommMessages.h" static BOOL lastUserPress = FALSE; #endif /************************************************************************* * @brief taskGeneral * The taskGeneral function handles the scheduled General Task interrupt.\n * Calls the executive functions for most monitors and controllers, the\n * operation modes, the system communications, and alarms.\n * @details * Inputs : none * Outputs : Executive for the TBD called. * @param none * @return none *************************************************************************/ void taskGeneral( void ) { #ifdef RM46_EVAL_BOARD_TARGET if ( getUserButtonState() == PIN_SIGNAL_LOW ) { if ( lastUserPress == FALSE ) { lastUserPress = TRUE; setUserLED( FALSE ); sendOffButtonMsgToUI(); } } else { lastUserPress = FALSE; } #endif // manage data received from other sub-systems execSystemCommRx(); // run operation mode state machine execOperationModes(); // control alarm lamp execAlarmLamp(); // manage data to be transmitted to other sub-systems execSystemCommTx(); // check in with watchdog manager checkInWithWatchdogMgmt( TASK_GENERAL ); // toggle GPIO to indicate general task has executed // gioToggleBit( gioPORTB, 1 ); }