Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -r2bb516790e85b97d633520730651926e12c9f45b -r1c736261f1c4107c556710fe71da9f093fb89d4d --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 2bb516790e85b97d633520730651926e12c9f45b) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 1c736261f1c4107c556710fe71da9f093fb89d4d) @@ -1467,7 +1467,8 @@ * If the drain is completed within the define time, it transitions to the * complete state. * @details Inputs: rsrvr1Status, rsrvr2Status, cancellationMode, stateTimer - * @details Outputs: rsrvr1Status, rsrvr2Status, cancellationMode, stateTimer + * @details Outputs: rsrvr1Status, rsrvr2Status, cancellationMode, stateTimer, + * haveDrainParamsBeenInit * @return next state of the heat disinfect state machine *************************************************************************/ static DG_HEAT_DISINFECT_STATE_T handleHeatDisinfectCancelModeWaterPathState( void ) @@ -1503,10 +1504,11 @@ cancellationMode = CANCELLATION_MODE_HOT; } - rsrvr1Status = DG_RESERVOIR_ABOVE_TARGET; - rsrvr2Status = DG_RESERVOIR_ABOVE_TARGET; - haveDrainParamsBeenInit[ DG_RESERVOIR_1 ] = FALSE; - haveDrainParamsBeenInit[ DG_RESERVOIR_2 ] = FALSE; + rsrvr1Status = DG_RESERVOIR_ABOVE_TARGET; + rsrvr2Status = DG_RESERVOIR_ABOVE_TARGET; + haveDrainParamsBeenInit[ DG_RESERVOIR_1 ] = FALSE; + haveDrainParamsBeenInit[ DG_RESERVOIR_2 ] = FALSE; + stateTimer = getMSTimerCount(); // The drain is set to start from reservoir 2 since all the actuators have been de-energized // Set the drain valve to reservoir 2 @@ -1525,9 +1527,6 @@ // Set the drain valve to reservoir 1 and close reservoir 2 setValveState( VRD1, VALVE_STATE_OPEN ); setValveState( VRD2, VALVE_STATE_CLOSED ); - - // Start the timer for drain timeout - stateTimer = getMSTimerCount(); } } else if ( DG_RESERVOIR_NOT_REACHED_TARGET == rsrvr2Status )