Index: firmware/App/Modes/ModeChemicalDisinfect.c =================================================================== diff -u -r782cbace651eebeccbbfd3e2f2b607436269ee7f -r88b3f1f9ca21db9f584070b38acba76b959a68fb --- firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision 782cbace651eebeccbbfd3e2f2b607436269ee7f) +++ firmware/App/Modes/ModeChemicalDisinfect.c (.../ModeChemicalDisinfect.c) (revision 88b3f1f9ca21db9f584070b38acba76b959a68fb) @@ -1726,10 +1726,13 @@ } } - if ( ( TRUE == isDGFaultAlarmActive() ) && ( chemDisinfectState != DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH ) ) + if ( ( TRUE == isDGFaultAlarmActive() ) || ( TRUE == isAnyInletWaterConditionActive() ) ) { - prevChemDisinfectState = chemDisinfectState; - chemDisinfectState = DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH; + if ( chemDisinfectState != DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH ) + { + prevChemDisinfectState = chemDisinfectState; + chemDisinfectState = DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH; + } } } Index: firmware/App/Modes/ModeChemicalDisinfectFlush.c =================================================================== diff -u -r782cbace651eebeccbbfd3e2f2b607436269ee7f -r88b3f1f9ca21db9f584070b38acba76b959a68fb --- firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision 782cbace651eebeccbbfd3e2f2b607436269ee7f) +++ firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision 88b3f1f9ca21db9f584070b38acba76b959a68fb) @@ -1094,10 +1094,13 @@ } } - if ( ( TRUE == isDGFaultAlarmActive() ) && ( chemDisinfectFlushState != DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH ) ) + if ( ( TRUE == isDGFaultAlarmActive() ) || ( TRUE == isAnyInletWaterConditionActive() ) ) { - prevChemDisinfectFlushState = chemDisinfectFlushState; - chemDisinfectFlushState = DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH; + if ( chemDisinfectFlushState != DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH ) + { + prevChemDisinfectFlushState = chemDisinfectFlushState; + chemDisinfectFlushState = DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH; + } } } Index: firmware/App/Modes/ModeFlush.c =================================================================== diff -u -r5109bb981cab2025fcb9de33e303d046085efa18 -r88b3f1f9ca21db9f584070b38acba76b959a68fb --- firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision 5109bb981cab2025fcb9de33e303d046085efa18) +++ firmware/App/Modes/ModeFlush.c (.../ModeFlush.c) (revision 88b3f1f9ca21db9f584070b38acba76b959a68fb) @@ -1130,10 +1130,13 @@ } } - if ( ( TRUE == isDGFaultAlarmActive() ) && ( flushState != DG_FLUSH_STATE_CANCEL_WATER_PATH ) ) + if ( ( TRUE == isDGFaultAlarmActive() ) || ( TRUE == isAnyInletWaterConditionActive() ) ) { - prevFlushState = flushState; - flushState = DG_FLUSH_STATE_CANCEL_WATER_PATH; + if ( flushState != DG_FLUSH_STATE_CANCEL_WATER_PATH ) + { + prevFlushState = flushState; + flushState = DG_FLUSH_STATE_CANCEL_WATER_PATH; + } } } Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -r782cbace651eebeccbbfd3e2f2b607436269ee7f -r88b3f1f9ca21db9f584070b38acba76b959a68fb --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 782cbace651eebeccbbfd3e2f2b607436269ee7f) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 88b3f1f9ca21db9f584070b38acba76b959a68fb) @@ -1976,10 +1976,13 @@ } } - if ( ( TRUE == isDGFaultAlarmActive() ) && ( heatDisinfectState != DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH ) ) + if ( ( TRUE == isDGFaultAlarmActive() ) || ( TRUE == isAnyInletWaterConditionActive() ) ) { - prevHeatDisinfectState = heatDisinfectState; - heatDisinfectState = DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH; + if ( heatDisinfectState != DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH ) + { + prevHeatDisinfectState = heatDisinfectState; + heatDisinfectState = DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH; + } } } Index: firmware/App/Modes/ModeHeatDisinfectActiveCool.c =================================================================== diff -u -rbc2f07d1ccac37e4cb18a21bfe096db94e72a151 -r88b3f1f9ca21db9f584070b38acba76b959a68fb --- firmware/App/Modes/ModeHeatDisinfectActiveCool.c (.../ModeHeatDisinfectActiveCool.c) (revision bc2f07d1ccac37e4cb18a21bfe096db94e72a151) +++ firmware/App/Modes/ModeHeatDisinfectActiveCool.c (.../ModeHeatDisinfectActiveCool.c) (revision 88b3f1f9ca21db9f584070b38acba76b959a68fb) @@ -782,11 +782,14 @@ } } - if ( ( TRUE == isDGFaultAlarmActive() ) && ( heatDisinfectActiveCoolState != DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE ) ) + if ( ( TRUE == isDGFaultAlarmActive() ) || ( TRUE == isAnyInletWaterConditionActive() ) ) { - // If there is any fault alarm and we are not already in the cancel water path state, set it to cancel water path state - heatDisinfectActiceCoolPrevState = heatDisinfectActiveCoolState; - heatDisinfectActiveCoolState = DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE; + if ( heatDisinfectActiveCoolState != DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE ) + { + // If there is any fault alarm and we are not already in the cancel water path state, set it to cancel water path state + heatDisinfectActiceCoolPrevState = heatDisinfectActiveCoolState; + heatDisinfectActiveCoolState = DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE; + } } } Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -ra12e1212c1cf49011ed8d65beaf9416ca18ffe98 -r88b3f1f9ca21db9f584070b38acba76b959a68fb --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a12e1212c1cf49011ed8d65beaf9416ca18ffe98) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 88b3f1f9ca21db9f584070b38acba76b959a68fb) @@ -288,7 +288,6 @@ *************************************************************************/ BOOL isDGFaultAlarmActive( void ) { - return isAFlaultAlarmActive; } @@ -350,6 +349,28 @@ } } +/*********************************************************************//** + * @brief +* The isAnyInletWaterConditionActive function returns the status of any of +* the inlet water conditions is active or not +* @details Inputs: none +* @details Outputs: none +* @return TRUE if any of the inlet water conditions is active otherwise, FALSE +*************************************************************************/ +BOOL isAnyInletWaterConditionActive( void ) +{ + BOOL status = FALSE; + + status |= isAlarmActive( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_HIGH ); + status |= isAlarmActive( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_LOW ); + status |= isAlarmActive( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH ); + status |= isAlarmActive( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW ); + status |= isAlarmActive( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_HIGH ); + status |= isAlarmActive( ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_LOW ); + + return status; +} + /************************************************************************* * @brief * The alarmUserNotify function activates Fault LED and Audio if FAULT exists. Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r3e5c16b70fb34da7d58f5cf6efff896fdb3d00c3 -r88b3f1f9ca21db9f584070b38acba76b959a68fb --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 3e5c16b70fb34da7d58f5cf6efff896fdb3d00c3) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 88b3f1f9ca21db9f584070b38acba76b959a68fb) @@ -102,6 +102,8 @@ BOOL isDGFaultAlarmActive( void ); BOOL isAlarmConditionActive( ALARM_ID_T alarm ); void handleResendActiveAlarmsRequest( void ); + +BOOL isAnyInletWaterConditionActive( void ); BOOL testSetAlarmStateOverride( U32 alarmID, BOOL value ); BOOL testResetAlarmStateOverride( U32 alarmID );