Index: firmware/App/Modes/FPModes/FPModeStandby.c =================================================================== diff -u -rd79faa7118db6d048ce3433224b3e5a478c97a98 -rfd21e08ba076054488aa112641e0db4191ee0b35 --- firmware/App/Modes/FPModes/FPModeStandby.c (.../FPModeStandby.c) (revision d79faa7118db6d048ce3433224b3e5a478c97a98) +++ firmware/App/Modes/FPModes/FPModeStandby.c (.../FPModeStandby.c) (revision fd21e08ba076054488aa112641e0db4191ee0b35) @@ -20,6 +20,7 @@ #include "FPOperationModes.h" #include "ModePreGenPermeateDefeatured.h" #include "ModePreGenPermeate.h" +#include "PermeateTank.h" #include "PersistentAlarm.h" #include "ROPump.h" #include "SystemCommDD.h" @@ -65,6 +66,7 @@ { initFPStandbyMode(); + resetPermeateTank(); setValveState( M4_VALV,VALVE_STATE_CLOSED ); setValveState( M12_VALV, VALVE_STATE_CLOSED ); setValveState( P6_VALV,VALVE_STATE_CLOSED ); Index: firmware/App/Modes/FPModes/FlushConcentrate.c =================================================================== diff -u -r43161808ceba270f92822369359aa299c647c9fe -rfd21e08ba076054488aa112641e0db4191ee0b35 --- firmware/App/Modes/FPModes/FlushConcentrate.c (.../FlushConcentrate.c) (revision 43161808ceba270f92822369359aa299c647c9fe) +++ firmware/App/Modes/FPModes/FlushConcentrate.c (.../FlushConcentrate.c) (revision fd21e08ba076054488aa112641e0db4191ee0b35) @@ -149,24 +149,12 @@ static FP_CONC_FLUSH_STATE_T handleConcentrateFlushProgressState( void ) { FP_CONC_FLUSH_STATE_T state = CONC_FLUSH_IN_PROGRESS; - LEVEL_STATE_T level = getLevelStatus( P25_LEVL ); // if ( TRUE == 1 ) )// TODO Alarm and Stop State Rework // { // state = CONC_FLUSH_PAUSED; // } - // Manual control of Permeate tank while in Permeate Flush - // to prevent overfill. - if ( LEVEL_STATE_HIGH == level ) - { - setValveState( M4_VALV,VALVE_STATE_CLOSED ); - } - else if ( LEVEL_STATE_LOW == level ) - { - setValveState( M4_VALV,VALVE_STATE_OPEN ); - } - if ( TRUE == didTimeout( concentrateFlushTimer, getConcentrateFlushTimeout() ) ) { isFlushComplete = TRUE; @@ -253,7 +241,6 @@ } setROPumpTargetDutyCycle( CONCENTRATE_FLUSH_RO_PUMP_TGT_PWM, TRUE ); concentrateFlushTimer = getMSTimerCount(); - cumulativeConcentrateVolume_mL = 0; break; case CONC_FLUSH_WAIT_FOR_TANK_FULL: Index: firmware/App/Modes/FPModes/FlushFilter.c =================================================================== diff -u -rd79faa7118db6d048ce3433224b3e5a478c97a98 -rfd21e08ba076054488aa112641e0db4191ee0b35 --- firmware/App/Modes/FPModes/FlushFilter.c (.../FlushFilter.c) (revision d79faa7118db6d048ce3433224b3e5a478c97a98) +++ firmware/App/Modes/FPModes/FlushFilter.c (.../FlushFilter.c) (revision fd21e08ba076054488aa112641e0db4191ee0b35) @@ -33,8 +33,8 @@ #define FILTER_FLUSH_MAX_TIMEOUT ( 600 * MS_PER_SECOND ) ///< Max override timeout for 10 minutes #define FILTER_FLUSH_DATA_PUBLISH_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the gen water mode data published. -#define FILTER_FLUSH_TIMEOUT ( 30 * MS_PER_SECOND ) ///< filter flush timer (in ms) -#define FILTER_HEALTH_PRESSURE_DIFF 15 ///< Filter flush pressure difference threshold for alarm +#define FILTER_FLUSH_TIMEOUT ( 30 * MS_PER_SECOND ) ///< Filter flush timer (in ms) +#define FILTER_HEALTH_PRESSURE_DIFF 15 ///< Filter flush pressure difference threshold for alarm // ********** private data ********** Index: firmware/App/Modes/FPModes/FlushPermeate.c =================================================================== diff -u -rd79faa7118db6d048ce3433224b3e5a478c97a98 -rfd21e08ba076054488aa112641e0db4191ee0b35 --- firmware/App/Modes/FPModes/FlushPermeate.c (.../FlushPermeate.c) (revision d79faa7118db6d048ce3433224b3e5a478c97a98) +++ firmware/App/Modes/FPModes/FlushPermeate.c (.../FlushPermeate.c) (revision fd21e08ba076054488aa112641e0db4191ee0b35) @@ -19,9 +19,9 @@ #include "Conductivity.h" #include "FlushPermeate.h" #include "FPOperationModes.h" +#include "Level.h" #include "MessageSupport.h" #include "Messaging.h" -#include "PermeateTank.h" #include "Pressure.h" #include "ROPump.h" #include "TaskGeneral.h" @@ -141,12 +141,24 @@ static FP_PERM_FLUSH_STATE_T handlePermeateFlushProgressState( void ) { FP_PERM_FLUSH_STATE_T state = PERM_FLUSH_IN_PROGRESS; + LEVEL_STATE_T level = getLevelStatus( P25_LEVL ); // if ( TRUE == 1 ))// TODO Alarm and Stop State Rework // { // state = PERM_FLUSH_PAUSED; // } + // Manual control of Permeate tank while in Permeate Flush + // to prevent overfill. + if ( LEVEL_STATE_HIGH == level ) + { + setValveState( M4_VALV, VALVE_STATE_CLOSED ); + } + else if ( LEVEL_STATE_LOW == level ) + { + setValveState( M4_VALV, VALVE_STATE_OPEN ); + } + if( TRUE == didTimeout( permeateFlushTimer, getPermeateFlushTimeout() ) ) { F32 p18conductivity = getFilteredConductivity( P18_COND ); @@ -215,7 +227,6 @@ setValveState( P34_VALV, VALVE_STATE_CLOSED ); setValveState( P37_VALV, VALVE_STATE_CLOSED ); setValveState( P39_VALV, VALVE_STATE_OPEN ); - startPermeateTankControl(); if ( TRUE == isBoostPumpInstalled() ) { setBoostPumpTargetPressure( PERMEATE_FLUSH_BOOST_PUMP_TGT_PSI ); Index: firmware/App/Modes/FPModes/ModeGenPermeate.c =================================================================== diff -u -r2869d16c34888bec55bded3b8aefd0203f56d3b0 -rfd21e08ba076054488aa112641e0db4191ee0b35 --- firmware/App/Modes/FPModes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision 2869d16c34888bec55bded3b8aefd0203f56d3b0) +++ firmware/App/Modes/FPModes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision fd21e08ba076054488aa112641e0db4191ee0b35) @@ -216,6 +216,7 @@ FP_GENP_MODE_STATE_T state = FP_GENP_TANK_FILL_STATE; PERMEATE_TANK_STATE_T permemeateTankState = getPermeateTankState(); + // Wait for set timeout before transition to closed loop control if ( TRUE == didTimeout( timeInState, PUMP_REST_TIMEOUT_MS ) && stateTransitioned == TRUE ) { stateTransitioned = FALSE; @@ -246,6 +247,7 @@ FP_GENP_MODE_STATE_T state = FP_GENP_TANK_FULL_STATE; PERMEATE_TANK_STATE_T permemeateTankState = getPermeateTankState(); + // Wait for set timeout before transition to closed loop control if ( TRUE == didTimeout( timeInState, PUMP_REST_TIMEOUT_MS ) && stateTransitioned == TRUE ) { stateTransitioned = FALSE;