Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rc7665b50144a403816389d4e673b3a42d6459fa8 -rcf6f24182211ad8cd8aa0628cec6a30a79d7a1ef --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision c7665b50144a403816389d4e673b3a42d6459fa8) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision cf6f24182211ad8cd8aa0628cec6a30a79d7a1ef) @@ -115,6 +115,7 @@ static OVERRIDE_U32_T alarmStartedAt[ NUM_OF_ALARM_IDS ]; ///< Table - when alarm became active for each alarm (if active) or zero (if inactive) static U32 alarmStatusPublicationTimerCounter = 0; ///< Used to schedule alarm status publication to CAN bus. static U32 alarmInfoPublicationTimerCounter = 0; ///< Used to schedule alarm information publication to CAN bus. +static U32 alarmsBlockedTimer = 0; ///< Time used to temporarily block alarms during recovery from AC power fail /// Interval (in task intervals) at which to publish alarm status to CAN bus. static OVERRIDE_U32_T alarmStatusPublishInterval = { ALARM_STATUS_PUBLISH_INTERVAL, ALARM_STATUS_PUBLISH_INTERVAL, ALARM_STATUS_PUBLISH_INTERVAL, 0 }; @@ -202,7 +203,6 @@ alarmStatus.alarmsSilenced = FALSE; alarmStatus.alarmsSilenceStart = 0; alarmStatus.alarmsSilenceExpiresIn = 0; - alarmStatus.alarmsBlockedTimer = 0; alarmStatus.alarmsEscalatesIn = 0; alarmStatus.alarmsToEscalate = FALSE; alarmStatus.alarmTop = ALARM_ID_NO_ALARM; @@ -218,6 +218,7 @@ alarmStatus.noDialRecirc = FALSE; alarmStatus.ok = FALSE; + alarmsBlockedTimer = 0; alarmAudioTestToneRequested = FALSE; resumeBlockedByAlarmProperty = FALSE; alarmAudioSelfTestState = ALARM_AUDIO_SELF_TEST_STATE_START; @@ -242,9 +243,9 @@ publishAlarmInfo(); // Block new machine alarms during power fail recovery - if ( alarmStatus.alarmsBlockedTimer > 0 ) + if ( alarmsBlockedTimer > 0 ) { - alarmStatus.alarmsBlockedTimer--; + alarmsBlockedTimer--; } } @@ -341,7 +342,7 @@ * The activateAlarm2Data function activates a given alarm. Also, an alarm * message is broadcast to the rest of the system. This function will * include two given data in the broadcast message for logging. - * @details Inputs: alarmStatus, determines blocked alarm conditions + * @details Inputs: alarmsBlockedTimer, determines blocked alarm conditions * @details Outputs: alarm triggered message sent, alarm activated * @param alarm ID of alarm to activate * @param alarmData1 supporting data to include in alarm msg @@ -356,10 +357,10 @@ // Block if new alarms are occur during loss of AC power if ( ( TRUE == getCPLDACPowerLossDetected() ) ) { - alarmStatus.alarmsBlockedTimer = ALARM_BLOCKED_COUNT_AFTER_AC_RETURN; + alarmsBlockedTimer = ALARM_BLOCKED_COUNT_AFTER_AC_RETURN; } // if the block timer is 0 OR we have an unblockable alarm - if ( ( ALARM_NOT_BLOCKED == alarmStatus.alarmsBlockedTimer ) + if ( ( ALARM_NOT_BLOCKED == alarmsBlockedTimer ) || ( ALARM_ID_HD_AC_POWER_LOST == alarm ) || ( ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT == alarm ) ) { Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r9e88617fa7eef0fd2ccc9a69facbf07437777490 -rcf6f24182211ad8cd8aa0628cec6a30a79d7a1ef --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 9e88617fa7eef0fd2ccc9a69facbf07437777490) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision cf6f24182211ad8cd8aa0628cec6a30a79d7a1ef) @@ -62,7 +62,6 @@ BOOL alarmsSilenced; ///< Alarms are currently silenced? U32 alarmsSilenceStart; ///< Time stamp for when alarms were silenced (ms) U32 alarmsSilenceExpiresIn; ///< Time until alarm silence expires (seconds) - U32 alarmsBlockedTimer; ///< Time used to temporarily block alarms during recovery from AC power fail BOOL alarmsToEscalate; ///< Are any active alarms due to escalate (should UI show count down timer?) U32 alarmsEscalatesIn; ///< Time until alarm will escalate (seconds) ALARM_ID_T alarmTop; ///< ID of current top alarm that will drive lamp/audio and UI should be displaying right now