Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r4e9b962e7cb3c0b477462756a32214118b10fc16 -r25e3b6e4ade9c528730b731ebfc29a45c7555228 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 4e9b962e7cb3c0b477462756a32214118b10fc16) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 25e3b6e4ade9c528730b731ebfc29a45c7555228) @@ -1281,27 +1281,31 @@ // assigning to 1 in order to prevent ALARM_ID_NO_ALARM being cleared // which will cause a fault - for ( a = ( ( ALARM_ID_T ) 1 ) ; a < NUM_OF_ALARM_IDS; a++ ) + for ( a = ( ( ALARM_ID_T ) 1 ); a < NUM_OF_ALARM_IDS; a++ ) { // 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 ) ) { - 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; - } - else if ( ( ALARM_USER_ACTION_END_TREATMENT == action ) && ( TRUE == ALARM_TABLE[ a ].alarmNoRetrigOnEndTx ) ) - { // alarms with no re-trigger on end-tx property should set the no re-trigger flag - alarmNoRetrigger = TRUE; - } - else if ( ALARM_USER_ACTION_ACK == action ) + // set no re-trigger flag if appropriate + if ( TRUE == alarmIsActive[ a ] ) { - if ( ( TRUE == ALARM_TABLE[ a ].alarmNoResume ) && ( TRUE == ALARM_TABLE[ a ].alarmNoRinseback ) ) - { // alarms that only allow end-tx that occur in rinseback or recirc states of treatment mode should set the no re-trigger flag - if ( ( MODE_TREA == getCurrentOperationMode() ) && - ( ( TREATMENT_RINSEBACK_STATE == getCurrentSubMode() ) || ( TREATMENT_RECIRC_STATE == getCurrentSubMode() ) ) ) - { - alarmNoRetrigger = TRUE; + 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; + } + else if ( ( ALARM_USER_ACTION_END_TREATMENT == action ) && ( TRUE == ALARM_TABLE[ a ].alarmNoRetrigOnEndTx ) ) + { // alarms with no re-trigger on end-tx property should set the no re-trigger flag + alarmNoRetrigger = TRUE; + } + else if ( ALARM_USER_ACTION_ACK == action ) + { + if ( ( TRUE == ALARM_TABLE[ a ].alarmNoResume ) && ( TRUE == ALARM_TABLE[ a ].alarmNoRinseback ) ) + { // alarms that only allow end-tx that occur in rinseback or recirc states of treatment mode should set the no re-trigger flag + if ( ( MODE_TREA == getCurrentOperationMode() ) && + ( ( TREATMENT_RINSEBACK_STATE == getCurrentSubMode() ) || ( TREATMENT_RECIRC_STATE == getCurrentSubMode() ) ) ) + { + alarmNoRetrigger = TRUE; + } } } }