Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r75e1ae332d1446dddf9b8d4ce6e8317449c57d67 -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 75e1ae332d1446dddf9b8d4ce6e8317449c57d67) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision cd5be724d5a3ba7457e761191d82f278654d7f5c) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2023 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file AlarmMgmt.h * -* @author (last) Dara Navaei -* @date (last) 18-Jan-2023 +* @author (last) Sean Nash +* @date (last) 08-Sep-2023 * * @author (original) Sean Nash * @date (original) 07-Nov-2019 @@ -38,9 +38,10 @@ /// Interval (in ms) at which alarm lamp and audio control will be executed. #define ALARM_LAMP_AND_AUDIO_CONTROL_INTERVAL_MS 250 -#define MAX_ALARM_VOLUME_LEVEL 5 -#define MAX_ALARM_VOLUME_ATTENUATION 4 -#define MIN_ALARM_VOLUME_ATTENUATION 0 +#define MAX_ALARM_VOLUME_LEVEL 5 ///< Maximum alarm audio level. +#define MAX_ALARM_VOLUME_ATTENUATION 4 ///< Maximum alarm audio attenuation. +#define MIN_ALARM_VOLUME_ATTENUATION 0 ///< Minimum alarm audio attenuation. +#define MAX_ALARM_LIST_SIZE 10 ///< Maximum number of active alarms inside alarm list. /// Enumeration of alarm actions. typedef enum Alarm_Actions @@ -60,7 +61,7 @@ ALARM_PRIORITY_T alarmsState; ///< Current alarm priority level 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 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 @@ -76,6 +77,7 @@ 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. @@ -155,6 +157,7 @@ F32 audioCurrLG; ///< Primary alarm audio current - low gain (mA) F32 backupAudioCurr; ///< Backup alarm audio current (mA) BOOL safetyShutdown; ///< Safety shutdown activated? (T/F) + BOOL acPowerLost; ///< Has A/C power been lost? (T/F) U08 uiAlarmButtonBlocks[ NUM_OF_ALARM_BUTTON_BLOCKERS ]; ///< Flags indicating UI alarm buttons blocked by alarm table or state } ALARM_INFO_PAYLOAD_T; @@ -179,16 +182,26 @@ U32 alarmID; ///< Alarm ID. } ALARM_ID_DATA_PUBLISH_T; +/// Alarm list request response payload record structure. +typedef struct +{ + BOOL accepted; ///< Accepted/Rejected. + U32 rejectionReason; ///< Rejection reason if not accepted. + U32 activeAlarmList[ MAX_ALARM_LIST_SIZE ]; ///< Active Alarm List array. +} ACTIVE_ALARM_LIST_RESPONSE_PAYLOAD_T; + // ********** public function prototypes ********** void initAlarmMgmt( void ); void execAlarmMgmt( void ); void activateAlarmNoData( ALARM_ID_T alarm ); void activateAlarm1Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData ); -void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2 ); +void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2, BOOL outside ); void clearAlarm( ALARM_ID_T alarm ); void clearAlarmCondition( ALARM_ID_T alarm ); +void clearNoRetriggerFlag( void ); +BOOL getNoRetriggerFlag( void ); void setAlarmUserActionEnabled( ALARM_USER_ACTION_T action, BOOL enabled ); void signalAlarmSilence( ALARM_SILENCE_CMD_T cmd ); void signalAlarmUserActionInitiated( ALARM_USER_ACTION_T action ); @@ -198,6 +211,8 @@ BOOL isBloodRecircBlocked( void ); BOOL isDialysateRecircBlocked( void ); BOOL doesAlarmStatusIndicateStop( void ); +BOOL doesAlarmIndicateNoResume( void ); +BOOL doesAlarmStatusIndicateEndTxOnly( void ); ALARM_PRIORITY_T getCurrentAlarmStatePriority( void ); BOOL isAlarmRecoverable( ALARM_ID_T alarm ); void setAlarmAudioVolume( U32 volumeLevel );