/************************************************************************** * * Copyright (c) 2024-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 PersistentAlarm.h * * @author (last) Vinayakam Mani * @date (last) 13-Sep-2024 * * @author (original) Sean * @date (original) 30-Jul-2024 * ***************************************************************************/ #ifndef __PERSISTENT_ALARM_H__ #define __PERSISTENT_ALARM_H__ #include "Common.h" /** * @defgroup PersistentAlarm PersistentAlarm * @brief Persistent alarms unit. * Provides functions that add persistence to alarm criteria. * * @addtogroup PersistentAlarm * @{ */ // ********** public definitions ********** #ifdef _DD_ /// FPGA persistent alarm groups data structure typedef enum { FPGA_PERS_ERROR_HYDRAULICS_OUTLET_PRESSURE = 0, ///< Hydraulics outlet pressure sensor. FPGA_PERS_ERROR_BIBAG_PRESSURE, ///< Bibag pressure sensor. FPGA_PERS_ERROR_SPENT_DIALYSATE_PRESSURE, ///< Spent dialysate pressure sensor. FPGA_PERS_ERROR_FRESH_DIALYSATE_PRESSURE, ///< Fresh dialysate pressure sensor. FPGA_PERS_ERROR_TRANSMEMBRANE_PRESSURE, ///< Transmembrane pressure sensor. FPGA_PERS_ERROR_WATER_INLET_INPUT_PRESSURE, ///< Water Inlet Input pressure sensor. FPGA_PERS_ERROR_WATER_INLET_OUTPUT_PRESSURE, ///< Water Inlte Output pressure sensor. FPGA_PERS_ERROR_D17_COND_SENSOR, ///< CD1 Conductivity sensor. FPGA_PERS_ERROR_D27_COND_SENSOR, ///< CD2 Conductivity sensor. FPGA_PERS_ERROR_D29_COND_SENSOR, ///< CD3 Conductivity sensor. FPGA_PERS_ERROR_D43_COND_SENSOR, ///< CD4 Conductivity sensor. FPGA_PERS_ERROR_RTD_ADC_TEMP_SENSORS, ///< Temperature sensors. FPGA_PERS_ERROR_BARO_SENSOR, ///< Barometric temperature sensor. NUM_OF_FPGA_SENSOR_GROUPS ///< Number of FPGA sensor groups. } FPGA_PERSISTENT_ALARMS_GROUP_T; #endif #ifdef _TD_ /// FPGA persistent alarm groups data structure typedef enum { FPGA_PERS_ERROR_ARTERIAL_PRESSURE_SENSOR = 0, ///< FPGA persistent error arterial pressure sensor. FPGA_PERS_ERROR_VENOUS_PRESSURE_SESNOR, ///< FPGA persistent error venous pressure sensor. NUM_OF_FPGA_SENSOR_GROUPS ///< Number of FPGA persistent error sensor groups. } FPGA_PERSISTENT_ALARMS_GROUP_T; #endif #ifdef _RO_ /// FPGA persistent alarm groups data structure typedef enum { NUM_OF_FPGA_SENSOR_GROUPS = 0 ///< Number of FPGA persistent error sensor groups. } FPGA_PERSISTENT_ALARMS_GROUP_T; #endif // ********** public function prototypes ********** void initPersistentAlarm( ALARM_ID_T alarmIndex, U32 persistentClearPeriod, U32 persistentTriggerPeriod ); void initFPGAPersistentAlarm( FPGA_PERSISTENT_ALARMS_GROUP_T group, ALARM_ID_T alarmIndex, U32 persistentClearPeriod, U32 persistentTriggerPeriod ); BOOL isPersistentAlarmTriggered( ALARM_ID_T alarmIndex, BOOL const isErrorOccurred ); BOOL isPersistentAlarmConditionCleared( ALARM_ID_T alarmIndex, BOOL const isErrorOccurred ); void checkPersistentAlarm( ALARM_ID_T alarm, BOOL isErrorOccured, F32 data, F32 limit ); void resetPersistentAlarmTimer( ALARM_ID_T alarmId ); void checkFPGAPersistentAlarms( FPGA_PERSISTENT_ALARMS_GROUP_T group, U32 readCount ); void checkFPGAPersistentErrorCountAlarm( FPGA_PERSISTENT_ALARMS_GROUP_T group, U32 errorCount ); /**@}*/ #endif