Index: firmware/App/Services/AlarmMgmtTD.h =================================================================== diff -u -r3518e8a088c32e75c0c8960d5e629a7401095feb -re8654d6ebf2c76c6bae8e1b465cc1382d205832a --- firmware/App/Services/AlarmMgmtTD.h (.../AlarmMgmtTD.h) (revision 3518e8a088c32e75c0c8960d5e629a7401095feb) +++ firmware/App/Services/AlarmMgmtTD.h (.../AlarmMgmtTD.h) (revision e8654d6ebf2c76c6bae8e1b465cc1382d205832a) @@ -20,13 +20,16 @@ #include "TDCommon.h" #include "AlarmDefs.h" +#include "AlarmAudio.h" +#include "AlarmLamp.h" #include "AlarmMgmtSWFaults.h" +#include "TestSupport.h" /** * @defgroup AlarmManagementTD AlarmManagementTD - * @brief Alarm Management service unit for TD firmware. Provides general - * alarm managementfunctionality including support functions for triggering - * and clearingspecific alarms. + * @brief Alarm Management service unit for TD firmware. Provides alarm + * management functionality including support functions for triggering + * and clearing specific alarms. * * @addtogroup AlarmManagementTD * @{ @@ -35,9 +38,6 @@ /// 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 ///< 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. @@ -82,13 +82,13 @@ /// Enumeration of alarm button blockers. typedef enum Alarm_Button_Blockers { - ALARM_BUTTON_TABLE_BLOCK_RESUME = 0, ///< Alarm table properties are blocking alarm resume button - ALARM_BUTTON_TABLE_BLOCK_RINSEBACK, ///< Alarm table properties are blocking alarm rinseback button - ALARM_BUTTON_TABLE_BLOCK_END_TREATMENT, ///< Alarm table properties are blocking alarm end treatment button - ALARM_BUTTON_STATE_BLOCK_RESUME, ///< State properties are blocking alarm resume button - ALARM_BUTTON_STATE_BLOCK_RINSEBACK, ///< State properties are blocking alarm rinseback button - ALARM_BUTTON_STATE_BLOCK_END_TREATMENT, ///< State properties are blocking alarm end treatment button - NUM_OF_ALARM_BUTTON_BLOCKERS ///< Number of alarm actions + ALARM_BUTTON_TABLE_BLOCK_RESUME = 0, ///< Alarm table properties are blocking alarm resume button + ALARM_BUTTON_TABLE_BLOCK_RINSEBACK, ///< Alarm table properties are blocking alarm rinseback button + ALARM_BUTTON_TABLE_BLOCK_END_TREATMENT, ///< Alarm table properties are blocking alarm end treatment button + ALARM_BUTTON_STATE_BLOCK_RESUME, ///< State properties are blocking alarm resume button + ALARM_BUTTON_STATE_BLOCK_RINSEBACK, ///< State properties are blocking alarm rinseback button + ALARM_BUTTON_STATE_BLOCK_END_TREATMENT, ///< State properties are blocking alarm end treatment button + NUM_OF_ALARM_BUTTON_BLOCKERS ///< Number of alarm actions } ALARM_BUTTON_BLOCKER_T; #pragma pack(push, 1) @@ -112,21 +112,21 @@ /// Payload record structure for an alarm status message. typedef struct { - U32 alarmState; ///< Alarm state: 0 = no alarms, 1 = low priority, 2 = medium priority, 3 = high priority - U32 alarmTop; ///< ID of top active alarm - U32 escalatesIn; ///< Top active alarm escalates in this many seconds - U32 silenceExpiresIn; ///< Silencing of alarms expires in this many seconds - U16 alarmsFlags; ///< Bit flags: 1 = true, 0 = false for each bit flag + U32 alarmState; ///< Alarm state: 0 = no alarms, 1 = low priority, 2 = medium priority, 3 = high priority + U32 alarmTop; ///< ID of top active alarm + U32 escalatesIn; ///< Top active alarm escalates in this many seconds + U32 silenceExpiresIn; ///< Silencing of alarms expires in this many seconds + U16 alarmsFlags; ///< Bit flags: 1 = true, 0 = false for each bit flag } ALARM_COMP_STATUS_PAYLOAD_T; #pragma pack(pop) /// 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. + 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 ********** @@ -137,44 +137,31 @@ void clearAlarmTD( ALARM_ID_T alarm ); 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, BOOL outside ); -void setAlarmUserActionEnabled( ALARM_USER_ACTION_T action, BOOL enabled ); +void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2, BOOL outside ); + +void setAlarmUserActionEnabled( ALARM_USER_ACTION_T action, BOOL enabled ); + void signalAlarmSilence( ALARM_SILENCE_CMD_T cmd ); void signalAlarmUserActionInitiated( ALARM_USER_ACTION_T action ); + BOOL isAnyAlarmActive( void ); +BOOL areAlarmsSilenced( void ); BOOL isBloodRecircBlocked( void ); BOOL isDialysateRecircBlocked( void ); BOOL doesAlarmStatusIndicateStop( void ); BOOL doesAlarmIndicateNoResume( void ); BOOL doesAlarmStatusIndicateEndTxOnly( void ); -ALARM_PRIORITY_T getCurrentAlarmStatePriority( void ); -void setAlarmAudioVolume( U32 volumeLevel ); +ALARM_PRIORITY_T getCurrentAlarmStatePriority( void ); void handleActiveAlarmListRequest( void ); void handleResendActiveAlarmsRequest( void ); -U32 getAlarmAudioVolume( void ); -F32 getAlarmAudioPrimaryHighGainCurrent( void ); -F32 getAlarmAudioPrimaryLowGainCurrent( void ); -F32 getAlarmAudioBackupCurrent( void ); -SELF_TEST_STATUS_T execAlarmAudioSelfTest( void ); -void resetAlarmAudioPOSTState( void ); - -BOOL testSetAlarmStartOverride( U32 alarmID, U32 value ); -BOOL testResetAlarmStartOverride( U32 alarmID ); +BOOL testSetAlarmStartOverride( MESSAGE_T *message ); BOOL testClearAllAlarms( U32 key ); BOOL testSetAlarmStatusPublishIntervalOverride( U32 ms ); BOOL testResetAlarmStatusPublishIntervalOverride( void ); BOOL testSetAlarmInfoPublishIntervalOverride( U32 ms ); BOOL testResetAlarmInfoPublishIntervalOverride( void ); -BOOL testSetAlarmAudioVolumeLevelOverride( U32 volume ); -BOOL testResetAlarmAudioVolumeLevelOverride( void ); -BOOL testSetPrimaryAlarmAudioCurrentHGOverride( F32 mA ); -BOOL testResetPrimaryAlarmAudioCurrentHGOverride( void ); -BOOL testSetPrimaryAlarmAudioCurrentLGOverride( F32 mA ); -BOOL testResetPrimaryAlarmAudioCurrentLGOverride( void ); -BOOL testSetBackupAlarmAudioCurrentOverride( F32 mA ); -BOOL testResetBackupAlarmAudioCurrentOverride( void ); /**@}*/