Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -rd7926685f2fe3086bab183166119f0965a192a69 -r4ef47949b3e17f400efe794467bdef39ca79e4e0 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision d7926685f2fe3086bab183166119f0965a192a69) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 4ef47949b3e17f400efe794467bdef39ca79e4e0) @@ -57,6 +57,7 @@ *************************************************************************/ void transitionToFaultMode( void ) { + deenergizeActuators(); } /*********************************************************************//** @@ -122,7 +123,8 @@ setValveState( VRI, VALVE_STATE_R1_C_TO_NO ); setValveState( VRF, VALVE_STATE_R2_C_TO_NO ); - //TODO add the composition pumps + requestConcentratePumpsOff( CONCENTRATEPUMPS_CP1_ACID ); + requestConcentratePumpsOff( CONCENTRATEPUMPS_CP2_BICARB ); signalROPumpHardStop(); signalDrainPumpHardStop(); stopPrimaryHeater(); Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rebbb1f85550a1f9b8f946655f7b2b63f76fbf67d -r4ef47949b3e17f400efe794467bdef39ca79e4e0 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision ebbb1f85550a1f9b8f946655f7b2b63f76fbf67d) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 4ef47949b3e17f400efe794467bdef39ca79e4e0) @@ -14,6 +14,8 @@ * @date (original) 04-Feb-2020 * ***************************************************************************/ + +#define __ALARM_MGMT_C__ #include "AlarmMgmt.h" #include "OperationModes.h" @@ -93,7 +95,13 @@ { // activate alarm alarmIsActive[ alarm ].data = TRUE; - alarmConditionIsActive[ alarm ] = TRUE; + alarmConditionIsActive[ alarm ] = TRUE; + + // If alarm is a fault, request transition to fault mode + if ( TRUE == ALARM_TABLE[ alarm ].alarmIsFault ) + { + requestNewOperationMode( DG_MODE_FAUL ); + } } } else Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r3eb7c2e62c727be195cd937d49957db9d4ba83b4 -r4ef47949b3e17f400efe794467bdef39ca79e4e0 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 3eb7c2e62c727be195cd937d49957db9d4ba83b4) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 4ef47949b3e17f400efe794467bdef39ca79e4e0) @@ -33,17 +33,6 @@ #include "AlarmDefs.h" -/// Alarm data types list. -typedef enum Alarm_Data_Types -{ - ALARM_DATA_TYPE_NONE = 0, ///< No data given - ALARM_DATA_TYPE_U32 = 1, ///< Alarm data is unsigned 32-bit integer type - ALARM_DATA_TYPE_S32 = 2, ///< Alarm data is signed 32-bit integer type - ALARM_DATA_TYPE_F32 = 3, ///< Alarm data is 32-bit floating point type - ALARM_DATA_TYPE_BOOL = 4, ///< Alarm data is 32-bit boolean type - NUM_OF_ALARM_DATA_TYPES ///< Total number of alarm data types -} ALARM_DATA_TYPES_T; - #pragma pack(push,4) /// Record structure for unsigned integer alarm data. typedef struct