Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r6cb2aa52c6701efe0788ee453da6449e29860927 -rdf41331377d5da437e853327019c17c58e3af775 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 6cb2aa52c6701efe0788ee453da6449e29860927) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision df41331377d5da437e853327019c17c58e3af775) @@ -37,6 +37,7 @@ #define ALARM_STATUS_PUBLISH_INTERVAL ( ALARM_LAMP_AND_AUDIO_CONTROL_INTERVAL_MS / TASK_GENERAL_INTERVAL ) #define ALARM_SILENCE_EXPIRES_IN_SECS (60) ///< Alarm silence expiration time in seconds. +#define ALARM_SILENCE_REQUESTED 1 ///< User cmd to request alarm silence (1=silence, 0=cancel silence). #define SUPERVISOR_ALARM_KEY 0xD2C3B4A5 ///< 32-bit key required for clear all alarms request. @@ -422,6 +423,37 @@ /*********************************************************************//** * @brief + * The signalAlarmSilence function handles an alarm silence request from + * the user. + * @details Inputs: none + * @details Outputs: alarm silence status updated + * @param cmd ID of user command (1=silence, 0=cancel silence) + * @return none + *************************************************************************/ +void signalAlarmSilence( U08 cmd ) +{ + if ( ALARM_SILENCE_REQUESTED == cmd ) + { + if ( FALSE == alarmStatus.alarmsSilenced ) + { + alarmStatus.alarmsSilenced = TRUE; + alarmStatus.alarmsSilenceStart = getMSTimerCount(); + alarmStatus.alarmsSilenceExpiresIn = ALARM_SILENCE_EXPIRES_IN_SECS; + } + } + else + { + if ( TRUE == alarmStatus.alarmsSilenced ) + { + alarmStatus.alarmsSilenced = FALSE; + alarmStatus.alarmsSilenceStart = 0; + alarmStatus.alarmsSilenceExpiresIn = 0; + } + } +} + +/*********************************************************************//** + * @brief * The signalAlarmUserActionInitiated function clears all non-recoverable alarms * and initiates selected user action. * @details Inputs: none