Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r25ede6f944eb53b68c8073404663c99d3ce158b0 -rc28337436dce61c9ecc295d191c44628e089bf33 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 25ede6f944eb53b68c8073404663c99d3ce158b0) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision c28337436dce61c9ecc295d191c44628e089bf33) @@ -130,11 +130,11 @@ static BOOL alarmButtonBlockers[ NUM_OF_ALARM_BUTTON_BLOCKERS ]; ///< Flags indicating whether alarm table or state properties are blocking alarm buttons for UI. -/// Current state of the alarm audio self tests. -static ALARM_AUDIO_SELF_TEST_STATE_T alarmAudioSelfTestState; -/// Flag indicates whether alarm audio test tone should be output. -static BOOL alarmAudioTestToneRequested; +static ALARM_AUDIO_SELF_TEST_STATE_T alarmAudioSelfTestState; ///< Current state of the alarm audio self tests. +static BOOL alarmAudioTestToneRequested; ///< Flag indicates whether alarm audio test tone should be output. +static BOOL resumeBlockedByAlarmProperty; ///< Flag indicates whether treatment resumption is currently blocked by alarm property. + // ********** private function prototypes ********** static void activateAlarm( ALARM_ID_T alarm ); @@ -212,6 +212,7 @@ alarmStatus.ok = FALSE; alarmAudioTestToneRequested = FALSE; + resumeBlockedByAlarmProperty = FALSE; alarmAudioSelfTestState = ALARM_AUDIO_SELF_TEST_STATE_START; } @@ -649,6 +650,19 @@ /*********************************************************************//** * @brief + * The doesAlarmIndicateNoResume function determines whether any currently + * active alarm has treatment resume blocked property. + * @details Inputs: resumeBlockedByAlarmProperty + * @details Outputs: none + * @return TRUE if any active alarm has no resume property, FALSE if not + *************************************************************************/ +BOOL doesAlarmIndicateNoResume( void ) +{ + return resumeBlockedByAlarmProperty; +} + +/*********************************************************************//** + * @brief * The getCurrentAlarmStatePriority function determines the current alarm * state priority (NONE, LOW, MEDIUM, or HIGH). * @details Inputs: alarmStatus @@ -1139,7 +1153,8 @@ BOOL systemFault = FALSE; BOOL stop = FALSE; BOOL noClear = FALSE; - BOOL noResume = FALSE; + BOOL noResume = FALSE; + BOOL noResumePerAlarmPropertyOnly = FALSE; BOOL noRinseback = FALSE; BOOL noEndTreatment = FALSE; BOOL usrAckReq = FALSE; @@ -1164,6 +1179,7 @@ systemFault = ( TRUE == ALARM_TABLE[ a ].alarmIsFault ? TRUE : systemFault ); stop = ( TRUE == ALARM_TABLE[ a ].alarmStops ? TRUE : stop ); noClear = ( TRUE == ALARM_TABLE[ a ].alarmNoClear ? TRUE : noClear ); + noResumePerAlarmPropertyOnly = ( ALARM_TABLE[ a ].alarmNoResume ? TRUE : noResumePerAlarmPropertyOnly ); // Set user alarm recovery actions allowed flags alarmButtonBlockers[ ALARM_BUTTON_TABLE_BLOCK_RESUME ] |= ALARM_TABLE[ a ].alarmNoResume; alarmButtonBlockers[ ALARM_BUTTON_TABLE_BLOCK_RINSEBACK ] |= ALARM_TABLE[ a ].alarmNoRinseback; @@ -1228,7 +1244,8 @@ alarmStatus.noRinseback = noRinseback; alarmStatus.noEndTreatment = noEndTreatment; alarmStatus.ok = usrAckReq; - alarmStatus.noMinimize = noMinimize; + alarmStatus.noMinimize = noMinimize; + resumeBlockedByAlarmProperty = noResumePerAlarmPropertyOnly; } /*********************************************************************//**