Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -ra56db4650fe5652d633e0c51b29da32d5d708608 -r4d0c621f5994e1de8bf7d3337678f7835292ce73 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision a56db4650fe5652d633e0c51b29da32d5d708608) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 4d0c621f5994e1de8bf7d3337678f7835292ce73) @@ -418,7 +418,7 @@ *************************************************************************/ static HD_POST_TREATMENT_STATE_T handlePostTreatmentDrainReservoirsState( void ) { - HD_POST_TREATMENT_STATE_T state = HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE; + HD_POST_TREATMENT_STATE_T state = HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE; execDrainReservoirs(); @@ -557,7 +557,19 @@ static void execDrainReservoirs( void ) { DRAIN_STATE_T priorSubState = currentDrainReservoirState; + DG_OP_MODE_T dgMode = getDGOpMode(); + if ( DG_MODE_STAN == dgMode ) + { // In case DG was reset/power cycled, re-start DG so we can drain the reservoirs + cmdStartDG(); + currentDrainReservoirState = DRAIN_RESERVOIR_SWITCH_STATE; + } + else if ( DG_MODE_FAUL == dgMode ) + { // In case DG faulted, skip DG drain states and move on + currentDrainReservoirState = DRAIN_RESERVOIR_COMPLETE_STATE; + } + + // Execute post-tx drain state machine switch ( currentDrainReservoirState ) { case DRAIN_RESERVOIR_SWITCH_STATE: @@ -600,7 +612,7 @@ static DRAIN_STATE_T handleDrainReservoirSwitchState( void ) { DRAIN_STATE_T state = DRAIN_RESERVOIR_SWITCH_STATE; - DG_OP_MODE_T dgMode = getDGOpMode(); + DG_OP_MODE_T dgMode = getDGOpMode(); if ( ( DG_MODE_GENE == dgMode ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getDGSubMode() ) ) { @@ -636,14 +648,6 @@ } } } - else if ( DG_MODE_STAN == dgMode ) - { // In case DG was reset/power cycled, re-start DG so we can drain the reservoirs - cmdStartDG(); - } - else if ( DG_MODE_FAUL == dgMode ) - { // In case DG faulted, skip DG drain states and move on - state = DRAIN_RESERVOIR_COMPLETE_STATE; - } return state; }