Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -r46a9148605c584c65aa759d2044d91428fcdd175 -ra2884d25df318f9b2fd7251a4793d90f62dbe70e --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision 46a9148605c584c65aa759d2044d91428fcdd175) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision a2884d25df318f9b2fd7251a4793d90f62dbe70e) @@ -467,24 +467,26 @@ // Set the chemical disinfect state that is published on the UI chemDisinfectUIState = CHEM_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT; - if ( STATE_OPEN == getSwitchStatus( CONCENTRATE_CAP ) ) - { - clearAlarm( ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID ); - } - if ( FALSE == isAlarmActive( ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID ) ) { - // Set all the actuators to reset and de-energized state - deenergizeActuators( NO_PARK_CONC_PUMPS ); - setValveState( VPI, VALVE_STATE_CLOSED ); - setValveState( VRD1, VALVE_STATE_OPEN ); - setValveState( VPO, VALVE_STATE_FILL_C_TO_NC ); - setDrainPumpTargetRPM( DRAIN_PUMP_TARGET_RPM ); + if ( STATE_CLOSED == getSwitchStatus( CONCENTRATE_CAP ) ) + { + activateAlarmNoData( ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID ); + } + else + { + // Set all the actuators to reset and de-energized state + deenergizeActuators( NO_PARK_CONC_PUMPS ); + setValveState( VPI, VALVE_STATE_CLOSED ); + setValveState( VRD1, VALVE_STATE_OPEN ); + setValveState( VPO, VALVE_STATE_FILL_C_TO_NC ); + setDrainPumpTargetRPM( DRAIN_PUMP_TARGET_RPM ); - // Assume reservoir 1 is full and drain it - rsrvr1Status = DG_RESERVOIR_ABOVE_TARGET; - state = DG_CHEM_DISINFECT_STATE_DRAIN_R1; - stateTimer = getMSTimerCount(); + // Assume reservoir 1 is full and drain it + rsrvr1Status = DG_RESERVOIR_ABOVE_TARGET; + state = DG_CHEM_DISINFECT_STATE_DRAIN_R1; + stateTimer = getMSTimerCount(); + } } return state; Index: firmware/App/Modes/ModeChemicalDisinfectFlush.c =================================================================== diff -u -r46a9148605c584c65aa759d2044d91428fcdd175 -ra2884d25df318f9b2fd7251a4793d90f62dbe70e --- firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision 46a9148605c584c65aa759d2044d91428fcdd175) +++ firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision a2884d25df318f9b2fd7251a4793d90f62dbe70e) @@ -363,21 +363,23 @@ chemDisinfectFlushUIState = CHEM_DISINFECT_FLUSH_UI_STATE_FLUSH_AFTER_DISINFECT; - if ( STATE_CLOSED == getSwitchStatus( CONCENTRATE_CAP ) ) - { - clearAlarm( ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID ); - } - if ( FALSE == isAlarmActive( ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID ) ) { - // Close VPi to prevent wasting water - setValveState( VPI, VALVE_STATE_CLOSED ); - setValveState( VPO, VALVE_STATE_FILL_C_TO_NC ); - setValveState( VRD1, VALVE_STATE_OPEN ); - setDrainPumpTargetRPM( DRAIN_PUMP_TARGET_RPM ); - rsrvr1Status = DG_RESERVOIR_ABOVE_TARGET; - stateTimer = getMSTimerCount(); - state = DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R1; + if ( STATE_OPEN == getSwitchStatus( CONCENTRATE_CAP ) ) + { + activateAlarmNoData( ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID ); + } + else + { + // Close VPi to prevent wasting water + setValveState( VPI, VALVE_STATE_CLOSED ); + setValveState( VPO, VALVE_STATE_FILL_C_TO_NC ); + setValveState( VRD1, VALVE_STATE_OPEN ); + setDrainPumpTargetRPM( DRAIN_PUMP_TARGET_RPM ); + rsrvr1Status = DG_RESERVOIR_ABOVE_TARGET; + stateTimer = getMSTimerCount(); + state = DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R1; + } } return state; Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -r5109bb981cab2025fcb9de33e303d046085efa18 -ra2884d25df318f9b2fd7251a4793d90f62dbe70e --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 5109bb981cab2025fcb9de33e303d046085efa18) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision a2884d25df318f9b2fd7251a4793d90f62dbe70e) @@ -1370,6 +1370,7 @@ setValveState( VRO, VALVE_STATE_R1_C_TO_NO ); // Turn on the drain pump to drain the reservoirs in open loop mode setDrainPumpTargetRPM( DRAIN_PUMP_RPM_IN_MIX_DRAIN ); + turnOnUVReactor( INLET_UV_REACTOR ); } else if ( TRUE == isDrainPumpInMixDrainOn ) {