Index: firmware/App/Modes/FlushConcentrate.c =================================================================== diff -u -r8d272582cbd2cb5fc0c6af0fead2867ce02658b0 -r921198ed4c337cd5bcebbeedd7d724da4b1e23be --- firmware/App/Modes/FlushConcentrate.c (.../FlushConcentrate.c) (revision 8d272582cbd2cb5fc0c6af0fead2867ce02658b0) +++ firmware/App/Modes/FlushConcentrate.c (.../FlushConcentrate.c) (revision 921198ed4c337cd5bcebbeedd7d724da4b1e23be) @@ -103,6 +103,8 @@ *************************************************************************/ void execConcentrateFlush( void ) { + FP_CONC_FLUSH_STATE_T prevState = concentrateFlushState; + switch ( concentrateFlushState ) { case CONC_FLUSH_IN_PROGRESS: @@ -119,6 +121,10 @@ break; } + if ( prevState != concentrateFlushState ) + { + setConcentrateFlushTransition( concentrateFlushState ); + } // publish Concentrate flush data on interval publishConcentrateFlushData(); } @@ -137,11 +143,10 @@ if ( TRUE == doesAlarmStatusIndicateStop() ) { - setConcentrateFlushTransition( CONC_FLUSH_PAUSED ); state = CONC_FLUSH_PAUSED; } - cumulativeConcentrateVolume_mL = getFlowRate(P7_FLOW) * CONCENTRATE_FLOW_INTEGRATOR; + cumulativeConcentrateVolume_mL = getFlowRate( P7_FLOW ) * CONCENTRATE_FLOW_INTEGRATOR; if( TRUE == didTimeout( concentrateFlushTimer, getConcentrateFlushTimeout() ) ) { @@ -151,13 +156,11 @@ if( FALSE == isVolumeOutOfRange ) { isFlushComplete = TRUE; - setConcentrateFlushTransition( CONC_FLUSH_PAUSED ); state = CONC_FLUSH_PAUSED; } else { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_CONCENTRATE_FLUSH_VOLUME_OUT_OF_RANGE, CONCENTRATE_FLUSH_VOLUME_THRESHOLD, cumulativeConcentrateVolume_mL) - setConcentrateFlushTransition( CONC_FLUSH_PAUSED ); state = CONC_FLUSH_PAUSED; } } @@ -180,7 +183,6 @@ { isFlushComplete = FALSE; pendingStartConcentrateFlushRequest = FALSE; - setConcentrateFlushTransition( CONC_FLUSH_IN_PROGRESS ); state = CONC_FLUSH_IN_PROGRESS; } return state; Index: firmware/App/Modes/FlushFilter.c =================================================================== diff -u -r8d272582cbd2cb5fc0c6af0fead2867ce02658b0 -r921198ed4c337cd5bcebbeedd7d724da4b1e23be --- firmware/App/Modes/FlushFilter.c (.../FlushFilter.c) (revision 8d272582cbd2cb5fc0c6af0fead2867ce02658b0) +++ firmware/App/Modes/FlushFilter.c (.../FlushFilter.c) (revision 921198ed4c337cd5bcebbeedd7d724da4b1e23be) @@ -92,6 +92,8 @@ *************************************************************************/ void execFilterFlush( void ) { + FP_FILTER_FLUSH_STATE_T prevState = concentrateFlushState; + switch ( filterFlushState ) { case FILTER_FLUSH_IN_PROGRESS: @@ -108,6 +110,10 @@ break; } + if ( prevState != filterFlushState ) + { + setFilterFlushTransition( filterFlushState ) + } // publish filter flush data on interval publishFilterFlushData(); } @@ -127,7 +133,6 @@ if ( TRUE == doesAlarmStatusIndicateStop() ) { - setFilterFlushTransition( FILTER_FLUSH_PAUSED ); state = FILTER_FLUSH_PAUSED; } @@ -138,14 +143,12 @@ if( TRUE == isPressureOutOfRange ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_FILTER_HEALTH_PRESSURE_OUT_OF_RANGE, pressureDif, FILTER_HEALTH_PRESSURE_DIFF ) - setFilterFlushTransition( FILTER_FLUSH_PAUSED ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_FILTER_HEALTH_PRESSURE_OUT_OF_RANGE, pressureDif, FILTER_HEALTH_PRESSURE_DIFF ); state = FILTER_FLUSH_PAUSED; } else { isFlushComplete = TRUE; - setFilterFlushTransition( FILTER_FLUSH_PAUSED ); state = FILTER_FLUSH_PAUSED; } @@ -168,8 +171,6 @@ { isFlushComplete = FALSE; pendingStartFilterFlushRequest = FALSE; - filterFlushTimer = getMSTimerCount(); - setFilterFlushTransition( FILTER_FLUSH_IN_PROGRESS ); state = FILTER_FLUSH_IN_PROGRESS; } return state; Index: firmware/App/Modes/FlushPermeate.c =================================================================== diff -u -r8d272582cbd2cb5fc0c6af0fead2867ce02658b0 -r921198ed4c337cd5bcebbeedd7d724da4b1e23be --- firmware/App/Modes/FlushPermeate.c (.../FlushPermeate.c) (revision 8d272582cbd2cb5fc0c6af0fead2867ce02658b0) +++ firmware/App/Modes/FlushPermeate.c (.../FlushPermeate.c) (revision 921198ed4c337cd5bcebbeedd7d724da4b1e23be) @@ -106,6 +106,8 @@ *************************************************************************/ void execPermeateFlush( void ) { + FP_PERM_FLUSH_STATE_T prevState = permeateFlushState; + switch ( permeateFlushState ) { case PERM_FLUSH_IN_PROGRESS: @@ -122,6 +124,10 @@ break; } + if ( prevState != permeateFlushState ) + { + setPermeateFlushTransition( permeateFlushState ); + } // publish Permeate flush data on interval publishPermeateFlushData(); } @@ -139,7 +145,6 @@ if ( TRUE == doesAlarmStatusIndicateStop() ) { - setPermeateFlushTransition( PERM_FLUSH_PAUSED ); state = PERM_FLUSH_PAUSED; } @@ -149,7 +154,6 @@ if( PERMEATE_FLUSH_CONDUCTIVITY_THRESHOLD > p18conductivity ) { isFlushComplete = TRUE; - setPermeateFlushTransition( PERM_FLUSH_PAUSED ); state = PERM_FLUSH_PAUSED; } @@ -159,7 +163,6 @@ if( TRUE == didTimeout( permeateFlushAlarmTimer, getPermeateFlushAlarmTimeout() ) ) { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_PERMEATE_FLUSH_CONDUCTIVITY_TIMEOUT, PERMEATE_FLUSH_CONDUCTIVITY_THRESHOLD, p18conductivity) - setPermeateFlushTransition( PERM_FLUSH_PAUSED ); state = PERM_FLUSH_PAUSED; } } @@ -182,7 +185,6 @@ if ( TRUE == pendingStartPermeateFlushRequest ) { isFlushComplete = FALSE; - setPermeateFlushTransition( PERM_FLUSH_IN_PROGRESS ); state = PERM_FLUSH_IN_PROGRESS; } return state;