Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -rffaf9f13166d7a9beb4252fad804c488f870aaaa -rdcfa6a5a00b4df77d79d34914635f038d274fb0d --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision ffaf9f13166d7a9beb4252fad804c488f870aaaa) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision dcfa6a5a00b4df77d79d34914635f038d274fb0d) @@ -392,7 +392,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(); @@ -531,7 +531,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: @@ -574,7 +586,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() ) ) { @@ -610,14 +622,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; }