Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r1d07de4e970f54f2ae1786ef546cf5567df9ba8e -rb7b4599fe79b345762856e0e3a67b808f55bfacc --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 1d07de4e970f54f2ae1786ef546cf5567df9ba8e) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision b7b4599fe79b345762856e0e3a67b808f55bfacc) @@ -564,7 +564,7 @@ { DRAIN_STATE_T state = DRAIN_DG_DEPRIME_STATE; - if ( ( DG_MODE_GENE == getDGOpMode() ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getDGSubMode() ) ) + if ( ( ( DG_MODE_GENE == getDGOpMode() ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getDGSubMode() ) ) || ( DG_MODE_FAUL == getDGOpMode() ) ) { if ( FALSE == drainDGDePrimeActive ) { @@ -581,7 +581,14 @@ { drainDGDePrimeActive = FALSE; signalDialInPumpHardStop( ); - state = DRAIN_RESERVOIR_SWITCH_STATE; + if ( getDGOpMode() != DG_MODE_FAUL ) + { + state = DRAIN_RESERVOIR_SWITCH_STATE; + } + else + { + state = DRAIN_RESERVOIR_COMPLETE_STATE; + } } } Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r1d07de4e970f54f2ae1786ef546cf5567df9ba8e -rb7b4599fe79b345762856e0e3a67b808f55bfacc --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 1d07de4e970f54f2ae1786ef546cf5567df9ba8e) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision b7b4599fe79b345762856e0e3a67b808f55bfacc) @@ -1590,7 +1590,7 @@ * @details Outputs: non-alarm signal flags set to FALSE * @return none *************************************************************************/ -void resetSignalFlags( void ) +static void resetSignalFlags( void ) { rinsebackToStoppedRequest = FALSE; endTreatmentRequest = FALSE; @@ -1606,7 +1606,7 @@ * @details Outputs: alarm signal flags set to FALSE * @return none *************************************************************************/ -void resetAlarmSignalFlags( void ) +static void resetAlarmSignalFlags( void ) { resumeTreatmentAlarmResponseRequest = FALSE; initiateRinsebackAlarmResponseRequest = FALSE; Index: firmware/App/Modes/TreatmentEnd.c =================================================================== diff -u -r1d07de4e970f54f2ae1786ef546cf5567df9ba8e -rb7b4599fe79b345762856e0e3a67b808f55bfacc --- firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 1d07de4e970f54f2ae1786ef546cf5567df9ba8e) +++ firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision b7b4599fe79b345762856e0e3a67b808f55bfacc) @@ -222,7 +222,7 @@ { TREATMENT_END_STATE_T result = TREATMENT_END_WAIT_FOR_RINSEBACK_STATE; - // Set reservoir 2 as active so we can drain reservoir 1 ASAP // TODO - I think this should be handled by treatment reservoir mgmt state machine + // Set reservoir 2 as active so we can drain reservoir 1 ASAP if ( ( DG_MODE_GENE == getDGOpMode() ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getDGSubMode() ) ) { if ( getDGInactiveReservoir() != DG_RESERVOIR_1 )