Index: AlarmMgmt.c =================================================================== diff -u -r809103b805b84e80dda7e3dd1e77a52330610666 -r842d6d28b1f88d07b9aedfec86e6dc0b677ad669 --- AlarmMgmt.c (.../AlarmMgmt.c) (revision 809103b805b84e80dda7e3dd1e77a52330610666) +++ AlarmMgmt.c (.../AlarmMgmt.c) (revision 842d6d28b1f88d07b9aedfec86e6dc0b677ad669) @@ -39,6 +39,7 @@ // ********** private data ********** +static COMP_ALARM_STATUS_T alarmStatus; static BOOL alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm static BOOL alarmIsDetected[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm condition (detected or cleared) @@ -61,6 +62,20 @@ alarmIsActive[ a ] = FALSE; alarmIsDetected[ a ] = FALSE; } + + alarmStatus.alarmsState = ALARM_PRIORITY_NONE; + alarmStatus.alarmTop = ALARM_ID_NO_ALARM; + alarmStatus.topAlarmConditionDetected = FALSE; + alarmStatus.systemFault = FALSE; + alarmStatus.stop = FALSE; + alarmStatus.lampOn = FALSE; + alarmStatus.noClear = FALSE; + alarmStatus.noResume = FALSE; + alarmStatus.noRinseback = FALSE; + alarmStatus.noEndTreatment = FALSE; + alarmStatus.noBloodRecirc = FALSE; + alarmStatus.noDialRecirc = FALSE; + alarmStatus.ok = FALSE; } /*********************************************************************//** @@ -278,6 +293,19 @@ /*********************************************************************//** * @brief + * The doesAlarmStatusIndicateStop function determines whether any currently + * active alarm has stop property. + * @details Inputs: alarmStatus + * @details Outputs: none + * @return TRUE if any active alarm has stop property, FALSE if not + *************************************************************************/ +BOOL doesAlarmStatusIndicateStop( void ) +{ + return alarmStatus.stop; +} + +/*********************************************************************//** + * @brief * The setAlarmActive function sets the active flag for a given alarm. * @details \b Inputs: none * @details \b Outputs: alarmIsActive[] Index: AlarmMgmt.h =================================================================== diff -u -r809103b805b84e80dda7e3dd1e77a52330610666 -r842d6d28b1f88d07b9aedfec86e6dc0b677ad669 --- AlarmMgmt.h (.../AlarmMgmt.h) (revision 809103b805b84e80dda7e3dd1e77a52330610666) +++ AlarmMgmt.h (.../AlarmMgmt.h) (revision 842d6d28b1f88d07b9aedfec86e6dc0b677ad669) @@ -42,6 +42,30 @@ */ #pragma pack(push, 4) +/// Record structure for detailing the properties of the current composite alarm status. +typedef struct +{ + ALARM_PRIORITY_T alarmsState; ///< Current alarm priority level +/* BOOL alarmsSilenced; ///< Alarms are currently silenced? // TODO - Determine if silence is needed + U32 alarmsSilenceStart; ///< Time stamp for when alarms were silenced (ms) + U32 alarmsSilenceExpiresIn; ///< Time until alarm silence expires (seconds) + 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 + BOOL topAlarmConditionDetected; ///< Condition for top alarm is still being detected + BOOL systemFault; ///< A system fault is active? + BOOL stop; ///< We should be in controlled stop right now + BOOL noClear; ///< No recovery will be possible + BOOL noResume; ///< Treatment may not be resumed at this time + BOOL noRinseback; ///< Rinseback may not be initiated at this time + BOOL noEndTreatment; ///< Ending the treatment is not an option at this time + BOOL noBloodRecirc; ///< No blood re-circulation allowed at this time + BOOL noDialRecirc; ///< No dialysate re-circulation allowed at this time + BOOL ok; ///< Display OK button instead of other options + BOOL noMinimize; ///< Prevent user from minimizing the alarm window + BOOL lampOn; ///< The alarm lamp is on + BOOL noReTrigger; ///< Alarm flag to block re-trigger is set +} COMP_ALARM_STATUS_T; /// Record structure for unsigned integer alarm data. typedef struct