Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -rc4f3105da2ed8a7c40950588b54b79067185a3ad -r8c5fef6b7ab382db81084a3abe9604e01882aef9 --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision c4f3105da2ed8a7c40950588b54b79067185a3ad) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision 8c5fef6b7ab382db81084a3abe9604e01882aef9) @@ -293,7 +293,7 @@ deenergizeActuators( NO_PARK_CONC_PUMPS ); initChemicalDisinfectMode(); - + setCurrentSubState( NO_SUB_STATE ); setCPLDCleanLEDColor( CPLD_CLEAN_LED_YELLOW ); // Set CD1 and CD2 conductivity sensors calibration table to be picked from the chemical disinfect calibration record Index: firmware/App/Modes/ModeChemicalDisinfectFlush.c =================================================================== diff -u -rc4f3105da2ed8a7c40950588b54b79067185a3ad -r8c5fef6b7ab382db81084a3abe9604e01882aef9 --- firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision c4f3105da2ed8a7c40950588b54b79067185a3ad) +++ firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision 8c5fef6b7ab382db81084a3abe9604e01882aef9) @@ -197,7 +197,7 @@ deenergizeActuators( NO_PARK_CONC_PUMPS ); initChemicalDisinfectFlushMode(); - + setCurrentSubState( NO_SUB_STATE ); setCPLDCleanLEDColor( CPLD_CLEAN_LED_YELLOW ); // Upon transition to mode chemical flush set CD1 and CD2 calibration records to be picked to the normal Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -rc4f3105da2ed8a7c40950588b54b79067185a3ad -r8c5fef6b7ab382db81084a3abe9604e01882aef9 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision c4f3105da2ed8a7c40950588b54b79067185a3ad) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 8c5fef6b7ab382db81084a3abe9604e01882aef9) @@ -217,7 +217,7 @@ U32 transitionToFillMode( void ) { initFillMode(); - + setCurrentSubState( NO_SUB_STATE ); // Set initial actuator states setValveState( VDR, VALVE_STATE_DRAIN_C_TO_NO ); setValveState( VPO, VALVE_STATE_NOFILL_C_TO_NO ); Index: firmware/App/Modes/ModeGenIdle.c =================================================================== diff -u -rc4f3105da2ed8a7c40950588b54b79067185a3ad -r8c5fef6b7ab382db81084a3abe9604e01882aef9 --- firmware/App/Modes/ModeGenIdle.c (.../ModeGenIdle.c) (revision c4f3105da2ed8a7c40950588b54b79067185a3ad) +++ firmware/App/Modes/ModeGenIdle.c (.../ModeGenIdle.c) (revision 8c5fef6b7ab382db81084a3abe9604e01882aef9) @@ -104,7 +104,7 @@ { // Re-initialize each time we transition to generation idle mode initGenIdleMode(); - + setCurrentSubState( NO_SUB_STATE ); // Set initial actuator states setValveState( VSP, VALVE_STATE_CLOSED ); setValveState( VPI, VALVE_STATE_OPEN ); @@ -289,6 +289,7 @@ static DG_GEN_IDLE_MODE_STATE_T handleBadFillState( void ) { DG_GEN_IDLE_MODE_STATE_T result = DG_GEN_IDLE_MODE_STATE_HANDLE_BAD_FILL; + U32 priorSubState = badFillState; // Execute current bad fill state switch ( badFillState ) @@ -319,6 +320,10 @@ break; } + if ( priorSubState != badFillState ) + { + setCurrentSubState( badFillState ); + } return result; }