Index: firmware/App/Modes/ModeRecirculate.c =================================================================== diff -u -rfbc0a281b094ff309dcbf83db1878818a9b384f1 -rebbb1f85550a1f9b8f946655f7b2b63f76fbf67d --- firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision fbc0a281b094ff309dcbf83db1878818a9b384f1) +++ firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision ebbb1f85550a1f9b8f946655f7b2b63f76fbf67d) @@ -30,6 +30,7 @@ #include "TaskGeneral.h" #include "TemperatureSensors.h" #include "Timers.h" +#include "UVReactors.h" #include "Valves.h" /** @@ -39,10 +40,12 @@ // ********** private definitions ********** -#define TARGET_RO_PRESSURE_PSI 130 ///< Target pressure for RO pump. -#define TARGET_RO_FLOW_RATE_L 0.8 ///< Target flow rate for RO pump. -#define FLUSH_LINES_VOLUME_L 0.1 ///< Water volume (in Liters) to flush when starting re-circulate mode. +#define TARGET_RO_PRESSURE_PSI 130 ///< Target pressure for RO pump. +#define TARGET_RO_FLOW_RATE_L 0.3 ///< Target flow rate for RO pump. +#define TARGET_FLUSH_LINES_RO_FLOW_RATE_L 0.6 ///< Target flow rate for RO pump. +#define FLUSH_LINES_VOLUME_L 0.1 ///< Water volume (in Liters) to flush when starting re-circulate mode. + // ********** private data ********** static DG_RECIRCULATE_MODE_STATE_T recircState; ///< Currently active re-circulation state. @@ -86,11 +89,15 @@ setValveState( VDR, VALVE_STATE_DRAIN_C_TO_NO ); setValveState( VPO, VALVE_STATE_NOFILL_C_TO_NO ); setROPumpTargetFlowRate( TARGET_RO_FLOW_RATE_L, TARGET_RO_PRESSURE_PSI ); + signalDrainPumpHardStop(); startPrimaryHeater(); - requestConcentratePumpsOff( CONCENTRATEPUMPS_CP1 ); - requestConcentratePumpsOff( CONCENTRATEPUMPS_CP2 ); + requestConcentratePumpsOff( CONCENTRATEPUMPS_CP1_ACID ); + requestConcentratePumpsOff( CONCENTRATEPUMPS_CP2_BICARB ); + // UV on + turnOnUVReactor( INLET_UV_REACTOR ); + turnOnUVReactor( OUTLET_UV_REACTOR ); #ifndef _VECTORCAST_ { // TODO - test code to start the fan since we're turning the heater on @@ -136,7 +143,7 @@ break; default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, 0, recircState ) // TODO - add s/w fault enum to 1st data param + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_RECIRC_MODE_INVALID_EXEC_STATE, recircState ) recircState = DG_RECIRCULATE_MODE_STATE_START; break; } @@ -165,6 +172,7 @@ if ( flushLinesVolumeL >= FLUSH_LINES_VOLUME_L ) { setValveState( VDR, VALVE_STATE_RECIRC_C_TO_NC ); + setROPumpTargetFlowRate( TARGET_RO_FLOW_RATE_L, TARGET_RO_PRESSURE_PSI ); result = DG_RECIRCULATE_MODE_STATE_RECIRC_WATER; }