Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r3fc7bce6763882c932a7da457fff2d9747b38be2 -r0a2843348d09394af913c32e4c50344f0b16f9f4 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 3fc7bce6763882c932a7da457fff2d9747b38be2) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 0a2843348d09394af913c32e4c50344f0b16f9f4) @@ -1289,7 +1289,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(); @@ -1340,6 +1341,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 @@ -1361,6 +1369,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() ) {