Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -rb01542f8e4ef5a29e9b08fc0d465478de516bf02 -rf6888c7e4e05cb84b11fceb4340458d8af543ce8 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision b01542f8e4ef5a29e9b08fc0d465478de516bf02) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision f6888c7e4e05cb84b11fceb4340458d8af543ce8) @@ -212,6 +212,50 @@ /*********************************************************************//** * @brief + * The initiateAlarmAction function initiate an alarm or alarm recovery + * action according to the current operation mode. + * @details Inputs: currentMode + * @details Outputs: given action forwarded to current operation mode for execution + * @param action ID of action to be initiated + * @return none + *************************************************************************/ +void initiateAlarmAction( ALARM_ACTION_T action ) +{ + // forward request to the current operation mode + switch ( currentMode ) + { + case MODE_FAUL: + signalAlarmActionToFaultMode( action ); + break; + case MODE_SERV: + signalAlarmActionToServiceMode( action ); + break; + case MODE_INIT: + signalAlarmActionToInitAndPOSTMode( action ); + break; + case MODE_STAN: + signalAlarmActionToStandbyMode( action ); + break; + case MODE_TPAR: + signalAlarmActionToTreatParamsMode( action ); + break; + case MODE_PRET: + signalAlarmActionToPreTreatmentMode( action ); + break; + case MODE_TREA: + signalAlarmActionToTreatmentMode( action ); + break; + case MODE_POST: + signalAlarmActionToPostTreatmentMode( action ); + break; + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_TO_SIGNAL_ACTION, currentMode ) + break; + } +} + +/*********************************************************************//** + * @brief * The arbitrateModeRequest function arbitrates any pending mode transition * requests. * @details Inputs: modeRequest[]