Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rf7bddc13e4e585c784b156fa84a2b86398962f07 -rf47b6fe27cb642b8db7c62fdc6407846afe9efe4 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision f7bddc13e4e585c784b156fa84a2b86398962f07) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision f47b6fe27cb642b8db7c62fdc6407846afe9efe4) @@ -1257,7 +1257,8 @@ BOOL noResume = FALSE; BOOL noResumePerAlarmPropertyOnly = alarmNoRetrigger; // cannot resume if no re-trigger flag is set BOOL noRinseback = FALSE; - BOOL noEndTreatment = FALSE; + BOOL noEndTreatment = FALSE; + BOOL endTxOnlyAlarmActive = FALSE; BOOL usrAckReq = FALSE; BOOL noMinimize = TRUE; HD_OP_MODE_T currentMode = getCurrentOperationMode(); @@ -1308,6 +1309,13 @@ else { noEndTreatment = TRUE; + } + // if there are any active alarms that only allow end treatment, set flag so we can ensure we do not allow OK option. + if ( ( TRUE == ALARM_TABLE[ a ].alarmNoResume ) && + ( TRUE == ALARM_TABLE[ a ].alarmNoRinseback ) && + ( FALSE == ALARM_TABLE[ a ].alarmNoEndTreatment ) ) + { + endTxOnlyAlarmActive = TRUE; } } // If alarm active } // Alarm table loop @@ -1329,6 +1337,13 @@ noEndTreatment = TRUE; } + // if OK option enabled and there are any active alarms that only allow end treatment, block OK option and allow end treatment option (DEN-16594). + if ( ( TRUE == usrAckReq ) && ( TRUE == endTxOnlyAlarmActive ) ) + { + usrAckReq = FALSE; + noEndTreatment = FALSE; + } + // If AC power is out, block all user options if ( TRUE == getCPLDACPowerLossDetected() ) {