Index: firmware/App/Modes/ModeFlush.c =================================================================== diff -u -rd325999b7b3ea03b7e294cb8a0b97df93812fbe9 -r3ed05dac558b42994d564507c2df1de1d431b243 --- firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision d325999b7b3ea03b7e294cb8a0b97df93812fbe9) +++ firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision 3ed05dac558b42994d564507c2df1de1d431b243) @@ -731,7 +731,7 @@ * within the defined time, it transitions to water cancellation state. * @details Inputs: stateTimerStart, flushLinesVolumeL * @details Outputs: stateTimerStart, flushLinesVolumeL, - * alarmDetectedPendingTrigger + * alarmDetectedPendingTrigger, hasFlushStatusBeenWrittenToNV * @return next state of the flush state machine *************************************************************************/ static DG_FLUSH_STATE_T handleFlushModeFlushCirculationDrainLineState( void ) @@ -756,8 +756,9 @@ setValveState( VDR, VALVE_STATE_RECIRC_C_TO_NC ); setROPumpTargetFlowRateLPM( RO_PUMP_TARGET_FLOW_RATE_LPM, RO_PUMP_MAX_PRESSURE_PSI ); - stateTimerStart = getMSTimerCount(); - state = DG_FLUSH_STATE_FLUSH_CIRCULATION; + hasFlushStatusBeenWrittenToNV = FALSE; + stateTimerStart = getMSTimerCount(); + state = DG_FLUSH_STATE_FLUSH_CIRCULATION; } else if ( TRUE == didTimeout( stateTimerStart, FLUSH_DRAIN_LINE_TIMEOUT_MS ) ) { @@ -925,17 +926,21 @@ /*********************************************************************//** * @brief * The handleFlushModeComplete function handles the complete state. - * @details Inputs: none + * @details Inputs: hasFlushStatusBeenWrittenToNV * @details Outputs: none * @return next state of the flush state machine *************************************************************************/ static DG_FLUSH_STATE_T handleFlushModeComplete( void ) { DG_FLUSH_STATE_T state = DG_FLUSH_STATE_COMPLETE; - stopDGFlush(); writeDisinfectDataToNV( USAGE_INFO_BASIC_FLUSH ); + if ( TRUE == hasFlushStatusBeenWrittenToNV ) + { + stopDGFlush(); + } + return state; }