Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -reae0635792a827b7cf9197cf6f6e253f2a094260 -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision eae0635792a827b7cf9197cf6f6e253f2a094260) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -244,7 +244,8 @@ *************************************************************************/ U32 transitionToChemicalDisinfectMode( void ) { - deenergizeActuators(); + // Set all the actuators to reset and de-energized state + deenergizeActuators( NO_PARK_CONC_PUMPS ); initChemicalDisinfectMode(); @@ -440,9 +441,6 @@ // Start overall chemical disinfect timer overallChemDisinfectTimer = getMSTimerCount(); - // Set all the actuators to reset and de-energized state - deenergizeActuators(); - F32 ppiPressure = getMeasuredDGPressure( PRESSURE_SENSOR_RO_PUMP_INLET ); F32 THdTemp = getTemperatureValue( TEMPSENSORS_HEAT_DISINFECT ); F32 TPoTemp = getTemperatureValue( TEMPSENSORS_OUTLET_PRIMARY_HEATER ); @@ -1787,7 +1785,7 @@ if ( CANCELLATION_MODE_NONE == cancellationMode ) { // Stop all the actuators first then decide who should run next - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); cancellationMode = CANCELLATION_MODE_WATER; rsrvr1Status = DG_RESERVOIR_ABOVE_TARGET; Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -reae0635792a827b7cf9197cf6f6e253f2a094260 -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision eae0635792a827b7cf9197cf6f6e253f2a094260) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -70,7 +70,7 @@ *************************************************************************/ U32 transitionToFaultMode( void ) { - deenergizeActuators(); + deenergizeActuators( PARK_CONC_PUMPS ); initFaultMode(); @@ -100,7 +100,7 @@ *************************************************************************/ U32 execFaultMode( void ) { - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); // execute current fault state switch ( faultState ) @@ -143,9 +143,10 @@ * de-energized state. * @details Inputs: none * @details Outputs: none + * @param parkPumps TRUE if concentrate pumps should be parked, FALSE if not * @return none *************************************************************************/ -void deenergizeActuators( void ) +void deenergizeActuators( BOOL parkPumps ) { // Turn off the UV reactors turnOffUVReactor( INLET_UV_REACTOR ); @@ -165,8 +166,8 @@ setValveStateDelayed( VRI, VALVE_STATE_R1_C_TO_NO, DELAY_VALVE_MS ); setValveStateDelayed( VRF, VALVE_STATE_R2_C_TO_NO, DELAY_VALVE_MS ); - requestConcentratePumpOff( CONCENTRATEPUMPS_CP1_ACID, FALSE ); - requestConcentratePumpOff( CONCENTRATEPUMPS_CP2_BICARB, FALSE ); + requestConcentratePumpOff( CONCENTRATEPUMPS_CP1_ACID, parkPumps ); + requestConcentratePumpOff( CONCENTRATEPUMPS_CP2_BICARB, parkPumps ); signalROPumpHardStop(); signalDrainPumpHardStop(); stopHeater( DG_PRIMARY_HEATER ); Index: firmware/App/Modes/ModeFault.h =================================================================== diff -u -r025612ad77fe630889a364586de54bffe5262d56 -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Modes/ModeFault.h (.../ModeFault.h) (revision 025612ad77fe630889a364586de54bffe5262d56) +++ firmware/App/Modes/ModeFault.h (.../ModeFault.h) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -31,6 +31,9 @@ // ********** public definitions ********** +#define PARK_CONC_PUMPS TRUE +#define NO_PARK_CONC_PUMPS FALSE + // ********** public function prototypes ********** void initFaultMode( void ); // initialize this module @@ -39,7 +42,7 @@ DG_FAULT_STATE_T getCurrentFaultState( void ); // get the current state of the fault mode. -void deenergizeActuators( void ); +void deenergizeActuators( BOOL parkPumps ); /**@}*/ Index: firmware/App/Modes/ModeFlush.c =================================================================== diff -u -reae0635792a827b7cf9197cf6f6e253f2a094260 -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision eae0635792a827b7cf9197cf6f6e253f2a094260) +++ firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -168,7 +168,7 @@ U32 transitionToFlushMode( void ) { // Reset all the actuators - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); initFlushMode(); @@ -298,7 +298,7 @@ if ( DG_MODE_FLUS == getCurrentOperationMode() ) { // Reset all the actuators - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); // Transition to mode standby requestNewOperationMode( DG_MODE_STAN ); @@ -813,7 +813,7 @@ if ( TRUE == didTimeout( stateTimerStart, FLUSH_WITH_FRESH_WATER_WAIT_TIME_MS ) ) { - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); flushUIState = FLUSH_UI_STATE_COMPLETE; state = DG_FLUSH_STATE_COMPLETE; } @@ -861,7 +861,7 @@ if ( FALSE == hasWaterCancellationBeenSet ) { // Stop all the actuators first then decide who should run next - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); // Set the actuators setValveState( VPI, VALVE_STATE_CLOSED ); Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -reae0635792a827b7cf9197cf6f6e253f2a094260 -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision eae0635792a827b7cf9197cf6f6e253f2a094260) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -265,7 +265,8 @@ *************************************************************************/ U32 transitionToHeatDisinfectMode( void ) { - deenergizeActuators(); + // Set all the actuators to reset and de-energized state + deenergizeActuators( NO_PARK_CONC_PUMPS ); initHeatDisinfectMode(); @@ -417,7 +418,7 @@ if ( DG_MODE_HEAT == getCurrentOperationMode() ) { // Reset all the actuators - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); // Transition to mode standby requestNewOperationMode( DG_MODE_STAN ); @@ -453,9 +454,6 @@ // Start overall heat disinfect timer overallHeatDisinfectTimer = getMSTimerCount(); - // Set all the actuators to reset and de-energized state - deenergizeActuators(); - // If the inlet pressure is less than or equal to the threshold or TDi and TRo difference is greater than 3 C, the cycle // should be canceled if ( ( ppiPressure <= MIN_INLET_PRESSURE_PSI ) || ( fabs( TDiTemp - TRoTemp ) > MAX_START_STATE_TEMP_SENSORS_DIFF_C ) ) @@ -1447,7 +1445,7 @@ F32 TRo = getTemperatureValue( TEMPSENSORS_OUTLET_REDUNDANT ); // Stop all the actuators first then decide who should run next - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); // The two sensors must be less than a threshold to decide if mix drain is needed to normal drain if ( ( TDi < MIX_DRAIN_TEMPERATURE_THRESHOLD_C ) && ( TRo < MIX_DRAIN_TEMPERATURE_THRESHOLD_C ) ) Index: firmware/App/Modes/ModeService.c =================================================================== diff -u -r256d5cb05f1ef09e19e2f2733a111f600c73a7ee -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 256d5cb05f1ef09e19e2f2733a111f600c73a7ee) +++ firmware/App/Modes/ModeService.c (.../ModeService.c) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -55,7 +55,7 @@ { // Deenergize all the actuators setCPLDCleanLEDColor( CPLD_CLEAN_LED_OFF ); - deenergizeActuators(); + deenergizeActuators( NO_PARK_CONC_PUMPS ); initServiceMode(); return serviceState; Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r1e34d32fcfac88792ed72e55953dee721bacd9d5 -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 1e34d32fcfac88792ed72e55953dee721bacd9d5) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -116,7 +116,7 @@ // re-initialize standby mode each time we transition to standby mode initStandbyMode(); - deenergizeActuators(); + deenergizeActuators( PARK_CONC_PUMPS ); setCPLDCleanLEDColor( CPLD_CLEAN_LED_OFF ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -reae0635792a827b7cf9197cf6f6e253f2a094260 -rd48e02f028dbd430bedda41be0173fbfc45116d7 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision eae0635792a827b7cf9197cf6f6e253f2a094260) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d48e02f028dbd430bedda41be0173fbfc45116d7) @@ -2764,7 +2764,7 @@ result = TRUE; memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); - if ( ( BOOL )payload.state.u32 ) + if ( TRUE == ( BOOL )payload.state.u32 ) { requestConcentratePumpOn( ( CONCENTRATE_PUMPS_T )payload.index ); }