Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r6419179374edcd65da462de84e8aeaefb7e20320 -r1240b612f790f931825aba86ec37f37eccce9336 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 6419179374edcd65da462de84e8aeaefb7e20320) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 1240b612f790f931825aba86ec37f37eccce9336) @@ -52,17 +52,6 @@ NUMBER_OF_ALARM_ACTIONS ///< Number of alarm actions } ALARM_ACTION_T; -/// Alarm data types list. -typedef enum Alarm_Data_Types -{ - ALARM_DATA_TYPE_NONE = 0, ///< No data given. - ALARM_DATA_TYPE_U32 = 1, ///< Alarm data is unsigned 32-bit integer type. - ALARM_DATA_TYPE_S32 = 2, ///< Alarm data is signed 32-bit integer type. - ALARM_DATA_TYPE_F32 = 3, ///< Alarm data is 32-bit floating point type. - ALARM_DATA_TYPE_BOOL = 4, ///< Alarm data is 32-bit boolean type. - NUM_OF_ALARM_DATA_TYPES ///< Total number of alarm data types. -} ALARM_DATA_TYPES_T; - #pragma pack(push, 4) /// Record structure for detailing the properties of the current composite alarm status. typedef struct @@ -74,7 +63,7 @@ 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 topAlarmConditionnDetected; ///< Condition for top alarm is still being detected + 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 @@ -84,6 +73,7 @@ BOOL noNewTreatment; ///< No new treatments may be started even if current treatment is ended BOOL noDialRecirc; ///< No dialysate re-circulation allowed at this time BOOL usrACKRequired; ///< The user must acknowledge top alarm + BOOL noMinimize; ///< Prevent user from minimizing the alarm window BOOL lampOn; ///< The alarm lamp is on } COMP_ALARM_STATUS_T; @@ -126,6 +116,17 @@ ALARM_DATA_TYPES_T dataType; ///< The type of alarm data provided. ALARM_DATAS_T data; ///< The alarm data of specified type. } ALARM_DATA_T; + +/// Payload record structure for the alarm info message. +typedef struct +{ + U32 audioVolume; ///< Audio volume level (1..5) + F32 audioCurrHG; ///< Primary alarm audio current - high gain (mA) + F32 audioCurrLG; ///< Primary alarm audio current - low gain (mA) + F32 backupAudioCurr; ///< Backup alarm audio current (mA) + BOOL safetyShutdown; ///< Safety shutdown activated? (T/F) +} ALARM_INFO_PAYLOAD_T; + #pragma pack(pop) #pragma pack(push, 2) @@ -197,7 +198,7 @@ SW_FAULT_ID_PI_CTRL_INVALID_CONTROLLER, SW_FAULT_ID_PI_CTRL_INVALID_SIGNAL, SW_FAULT_ID_MODE_TREATMENT_INVALID_ALARM_ACTION, - SW_FAULT_ID_MODE_PRIME_RESERVOIR_MGMT_INVALID_STATE, + SW_FAULT_ID_MODE_PRE_TREATMENT_RESERVOIR_MGMT_INVALID_STATE, SW_FAULT_ID_DIALYSIS_INVALID_STATE, // 55 SW_FAULT_ID_DIALYSIS_INVALID_UF_STATE, SW_FAULT_ID_NVDATAMGMT_INVALID_SELF_TEST_STATE, @@ -253,10 +254,15 @@ SW_FAULT_ID_HD_INVALID_COMMAND_RESPONSE_ID, SW_FAULT_ID_HD_INVALID_RESERVOIR_ID, SW_FAULT_ID_HD_INVALID_VALVE_SETTING_ID, - SW_FAULT_ID_HD_SYRINGE_INVALID_BOLUS_CMD, // 110 + SW_FAULT_ID_HD_INVALID_BLOOD_LEAK_STATE, // 110 + SW_FAULT_ID_HD_SYRINGE_INVALID_BOLUS_CMD, SW_FAULT_ID_HD_SYRINGE_INVALID_CONT_CMD, SW_FAULT_ID_HD_SYRINGE_INVALID_VREF, SW_FAULT_ID_HD_SYRINGE_INVALID_STATE, + SW_FAULT_ID_HD_INVALID_BUBBLE_STATE, // 115 + SW_FAULT_ID_HD_INVALID_BUBBLE_ID, + SW_FAULT_ID_MODE_POST_TREATMENT_INVALID_STATE, + SW_FAULT_ID_POST_TREATMENT_RESERVOIR_MGMT_INVALID_STATE, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; @@ -279,13 +285,28 @@ BOOL doesAlarmStatusIndicateStop( void ); ALARM_PRIORITY_T getCurrentAlarmStatePriority( void ); BOOL isAlarmRecoverable( ALARM_ID_T alarm ); -void setAlarmAudioVolume( U32 volumeLevel ); +void setAlarmAudioVolume( U32 volumeLevel ); +U32 getAlarmAudioVolume( void ); +F32 getAlarmAudioPrimaryHighGainCurrent( void ); +F32 getAlarmAudioPrimaryLowGainCurrent( void ); +F32 getAlarmAudioBackupCurrent( void ); +SELF_TEST_STATUS_T execAlarmAudioSelfTest( void ); BOOL testSetAlarmStateOverride( U32 alarmID, BOOL value ); BOOL testResetAlarmStateOverride( U32 alarmID ); BOOL testSetAlarmStartOverride( U32 alarmID, U32 value ); BOOL testResetAlarmStartOverride( U32 alarmID ); -BOOL testClearAllAlarms( U32 key ); +BOOL testClearAllAlarms( U32 key ); +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 ); /**@}*/