Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -re6dc73b45ec3d0df4c9a03673625862b71acd608 -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision e6dc73b45ec3d0df4c9a03673625862b71acd608) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -136,7 +136,7 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, 0, pressuresState ) // TODO - replace 1st param with s/w fault enum + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_PRESSURE_INVALID_EXEC_STATE, pressuresState ) pressuresState = PRESSURE_INIT_STATE; break; } Index: firmware/App/DGCommon.h =================================================================== diff -u -re6dc73b45ec3d0df4c9a03673625862b71acd608 -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/DGCommon.h (.../DGCommon.h) (revision e6dc73b45ec3d0df4c9a03673625862b71acd608) +++ firmware/App/DGCommon.h (.../DGCommon.h) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -23,8 +23,8 @@ // ********** version ********** #define DG_VERSION_MAJOR 0 -#define DG_VERSION_MINOR 4 -#define DG_VERSION_MICRO 5 +#define DG_VERSION_MINOR 5 +#define DG_VERSION_MICRO 0 #define DG_VERSION_BUILD 15 // ********** build switches ********** Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -r0c1f66a170a3a0a4324fa1a3c3bfb4c7f77139b5 -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 0c1f66a170a3a0a4324fa1a3c3bfb4c7f77139b5) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -104,7 +104,7 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, 0, drainState ) // TODO - add s/w fault enum to 1st data param + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_DRAIN_MODE_INVALID_EXEC_STATE, drainState ) drainState = DG_DRAIN_STATE_START; break; } Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -re6dc73b45ec3d0df4c9a03673625862b71acd608 -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision e6dc73b45ec3d0df4c9a03673625862b71acd608) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -169,7 +169,7 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, 0, fillState ) // TODO - add s/w fault enum to 1st data param + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_FILL_MODE_INVALID_EXEC_STATE, fillState ) fillState = DG_FILL_MODE_STATE_START; break; } Index: firmware/App/Modes/ModeRecirculate.c =================================================================== diff -u -rb1dc3df084a8517ca1575bdbf741fecd96d56a12 -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision b1dc3df084a8517ca1575bdbf741fecd96d56a12) +++ firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -142,7 +142,7 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, 0, recircState ) // TODO - add s/w fault enum to 1st data param + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_RECIRC_MODE_INVALID_EXEC_STATE, recircState ) recircState = DG_RECIRCULATE_MODE_STATE_START; break; } Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r9301b9ec99beedbb49076dc03526622d313bd8cf -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 9301b9ec99beedbb49076dc03526622d313bd8cf) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -95,18 +95,26 @@ initStandbyMode(); // set initial actuator states - setValveState( VPI, VALVE_STATE_CLOSED ); - setValveState( VSP, VALVE_STATE_CLOSED ); + setValveState( VRF, VALVE_STATE_R2_C_TO_NO ); + setValveState( VRI, VALVE_STATE_R1_C_TO_NO ); + setValveState( VRD, VALVE_STATE_R2_C_TO_NO ); + setValveState( VRO, VALVE_STATE_R1_C_TO_NO ); + setValveState( VPO, VALVE_STATE_NOFILL_C_TO_NO ); setValveState( VRC, VALVE_STATE_DRAIN_C_TO_NO ); setValveState( VDR, VALVE_STATE_DRAIN_C_TO_NO ); - setValveState( VPO, VALVE_STATE_NOFILL_C_TO_NO ); + setValveState( VPI, VALVE_STATE_CLOSED ); + setValveState( VSP, VALVE_STATE_CLOSED ); + signalROPumpHardStop(); signalDrainPumpHardStop(); stopPrimaryHeater(); stopTrimmerHeater(); requestConcentratePumpsOff( CONCENTRATEPUMPS_CP1_ACID ); requestConcentratePumpsOff( CONCENTRATEPUMPS_CP2_BICARB ); + // UV off + turnOffUVReactor( INLET_UV_REACTOR ); + turnOffUVReactor( OUTLET_UV_REACTOR ); resetReservoirLoadCellsOffset( DG_RESERVOIR_1 ); resetReservoirLoadCellsOffset( DG_RESERVOIR_2 ); @@ -145,7 +153,7 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, 0, standbyState ) // TODO - add s/w fault enum to 1st data param + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_STANDBY_MODE_INVALID_EXEC_STATE, standbyState ) standbyState = DG_STANDBY_MODE_STATE_START; break; } Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r3f22d883958a14b6193d6cd59c9acdbbd359b69e -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 3f22d883958a14b6193d6cd59c9acdbbd359b69e) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -126,7 +126,7 @@ // is requested new mode valid and legal at this time? if ( newMode >= DG_MODE_NLEG ) { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_ILLEGAL_MODE_TRANSITION_REQUESTED, (U32)newMode ) newMode = currentMode; } @@ -186,7 +186,7 @@ break; default: - // TODO - trigger s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_STATE, (U32)currentMode ) currentMode = DG_MODE_FAUL; currentSubMode = 0; break; @@ -214,7 +214,7 @@ } else { // invalid mode requested - // TODO - trigger s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_REQUESTED, (U32)newMode ) } } @@ -316,7 +316,7 @@ transitionToChemicalDisinfectMode(); break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, 0, (U32)newMode ) // TODO - add s/w fault enum to 1st data param + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_OP_MODES_INVALID_MODE_TO_TRANSITION_TO, (U32)newMode ) break; } } Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -rac55f23681cd3a29ec235265f73c67895e36ada9 -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision ac55f23681cd3a29ec235265f73c67895e36ada9) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -164,6 +164,11 @@ SW_FAULT_ID_INVALID_TEMPERATURE_SENSOR_SELECTED, SW_FAULT_ID_DRAIN_PUMP_INVALID_RPM_SELECTED, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_ID, + SW_FAULT_ID_STANDBY_MODE_INVALID_EXEC_STATE, // 75 + SW_FAULT_ID_RECIRC_MODE_INVALID_EXEC_STATE, + SW_FAULT_ID_DRAIN_MODE_INVALID_EXEC_STATE, + SW_FAULT_ID_FILL_MODE_INVALID_EXEC_STATE, + SW_FAULT_ID_PRESSURE_INVALID_EXEC_STATE, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r12dadcaf597ba93fb51ef8f266d20ad2268ca6a7 -ra1b8dbb69c4bd2f0cc22e62bede7015c9307d378 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 12dadcaf597ba93fb51ef8f266d20ad2268ca6a7) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision a1b8dbb69c4bd2f0cc22e62bede7015c9307d378) @@ -78,11 +78,7 @@ *************************************************************************/ void initReservoirs( void ) { - activeReservoir.data = (U32)DG_RESERVOIR_1; - setValveState( VRF, VALVE_STATE_R2_C_TO_NO ); - setValveState( VRD, VALVE_STATE_R2_C_TO_NO ); - setValveState( VRO, VALVE_STATE_R1_C_TO_NO ); - setValveState( VRI, VALVE_STATE_R1_C_TO_NO ); + activeReservoir.data = (U32)DG_RESERVOIR_1; fillVolumeTargetMl.data = DEFAULT_FILL_VOLUME_ML; drainVolumeTargetMl.data = DEFAULT_DRAIN_VOLUME_ML;