Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rcb341120bd78ba7a9852e495038e5c5bcf4abe04 -rbcaaf1578c5ed87dce81d73d2391d4794ecaa84a --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision cb341120bd78ba7a9852e495038e5c5bcf4abe04) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision bcaaf1578c5ed87dce81d73d2391d4794ecaa84a) @@ -1286,9 +1286,11 @@ // Clear alarm if alarm allowed to be cleared and not clear only (those are cleared individually) if ( ( FALSE == ALARM_TABLE[ a ].alarmNoClear ) && ( FALSE == ALARM_TABLE[ a ].alarmClearOnly ) ) { - // set no re-trigger flag if appropriate - if ( TRUE == alarmIsActive[ a ] ) + // Clear alarm if active and condition not active + if ( ( TRUE == alarmIsActive[ a ] ) && + ( ( TRUE == ALARM_TABLE[ a ].alarmConditionClearImmed ) || ( alarmIsDetected[ a ] != TRUE ) ) ) { + // set no re-trigger flag if appropriate if ( ( ALARM_USER_ACTION_RINSEBACK == action ) && ( TRUE == ALARM_TABLE[ a ].alarmNoRetrigOnRB ) ) { // alarms with no re-trigger on rinseback property should set the no re-trigger flag alarmNoRetrigger = TRUE; @@ -1308,8 +1310,9 @@ } } } + // clear this alarm + clearAlarm( a ); } - clearAlarm( a ); } } }