Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r5ca11d82e660ba31b6821420eb9098e036e6d93c -rceb73a91f12d644a3c8552da42058f13c426f6b7 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 5ca11d82e660ba31b6821420eb9098e036e6d93c) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision ceb73a91f12d644a3c8552da42058f13c426f6b7) @@ -1313,9 +1313,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; @@ -1335,8 +1337,9 @@ } } } + // clear this alarm + clearAlarm( a ); } - clearAlarm( a ); } } }