Index: firmware/App/Modes/ModeChemicalDisinfectFlush.c =================================================================== diff -u -r5aee05d242962c2f9294577c3ba5015f9342fb83 -r2ac3479b027dd1dab8673b9959ab13234a68d842 --- firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision 5aee05d242962c2f9294577c3ba5015f9342fb83) +++ firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision 2ac3479b027dd1dab8673b9959ab13234a68d842) @@ -331,9 +331,10 @@ static DG_CHEM_DISINFECT_FLUSH_STATE_T handleChemicalDisinfectFlushStartState( void ) { DG_CHEM_DISINFECT_FLUSH_STATE_T state = DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R1; - chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_FLUSH_AFTER_DISINFECT; - overallChemDisinfectFlushTimer = getMSTimerCount(); + chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_FLUSH_AFTER_DISINFECT; + overallChemDisinfectFlushTimer = getMSTimerCount(); + // Close VPi to prevent wasting water setValveState( VPI, VALVE_STATE_CLOSED ); @@ -712,9 +713,12 @@ { DG_CHEM_DISINFECT_FLUSH_STATE_T state = DG_CHEM_DISINFECT_FLUSH_STATE_SAMPLE_FLUSH_R1_TO_R2_DRAIN_R2; + state = DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R1; // TODO remove once this state is implemented + // TODO add a 30 min timeout if the user did not hit complete and update the SRS + if ( TRUE == didTimeout( stateTimer, SAMPLE_FLUSH_WAIT_TIME_MS ) ) { - + // TODO complete this if statement } return state; @@ -732,9 +736,10 @@ static DG_CHEM_DISINFECT_FLUSH_STATE_T handleChemicalDisinfectFlushCancelModeBasicPathState( void ) { DG_CHEM_DISINFECT_FLUSH_STATE_T state = DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_BASIC_PATH; - chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_CANCEL_FLUSH; - cancellationMode = CANCELLATION_MODE_BASIC; + chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_CANCEL_FLUSH; + cancellationMode = CANCELLATION_MODE_BASIC; + failChemicalDisinfectFlush(); return state; @@ -752,8 +757,9 @@ static DG_CHEM_DISINFECT_FLUSH_STATE_T handleChemicalDisinfectFlushCancelModeWaterPathState( void ) { DG_CHEM_DISINFECT_FLUSH_STATE_T state = DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH; - chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_CANCEL_FLUSH; + chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_CANCEL_FLUSH; + if ( CANCELLATION_MODE_NONE == cancellationMode ) { // Stop all the actuators first then decide who should run next @@ -824,8 +830,9 @@ static DG_CHEM_DISINFECT_FLUSH_STATE_T handleChemicalDisinfectFlushCompleteState( void ) { DG_CHEM_DISINFECT_FLUSH_STATE_T state = DG_CHEM_DISINFECT_FLUSH_STATE_COMPLETE; - chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_COMPLETE; + chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_COMPLETE; + writeDisinfectDataToNV( USAGE_INFO_CHEM_FLUSH ); stopChemicalDisinfectFlush();