Index: PersistentAlarm.h =================================================================== diff -u -r7c49409b1bfeee8fd788fe1cd2a6dbf2abda7fea -r7e186bb97310fb59f525e5399ec7a74711bea571 --- PersistentAlarm.h (.../PersistentAlarm.h) (revision 7c49409b1bfeee8fd788fe1cd2a6dbf2abda7fea) +++ PersistentAlarm.h (.../PersistentAlarm.h) (revision 7e186bb97310fb59f525e5399ec7a74711bea571) @@ -1,17 +1,17 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2022 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 +* @file PersistentAlarm.h * -* @author (last) Quang Nguyen -* @date (last) 02-Sep-2020 +* @author (last) Quang Nguyen +* @date (last) 05-Feb-2021 * -* @author (original) Quang Nguyen -* @date (original) 17-Aug-2020 +* @author (original) Quang Nguyen +* @date (original) 17-Aug-2020 * ***************************************************************************/ @@ -23,44 +23,51 @@ /** * @defgroup PersistentAlarm PersistentAlarm * @brief Persistent alarm monitor module. - * Check for persistent error and throw appropriate alarm. + * Check for persistent error and return indication on whether alarm is triggered or alarm condition is cleared. * * @addtogroup PersistentAlarm * @{ */ // ********** public definitions ********** -typedef enum PersistentAlarm +#ifdef _DG_ +typedef enum { + TWO_WIRE_ADC_TEMP_SENSORS = 0, + THD_ADC_TEMP_SENSORS, + TDI_ADC_TEMP_SENSORS, + TRO_ADC_TEMP_SENSORS, + CPI_COND_SENSOR, + CPO_COND_SENSOR, + PRESSURE_SENSORS, + FLOW_SENSORS, + NUM_OF_FPGA_SENSOR_GROUPS +} FPGA_PERSISTENT_ALARMS_GROUP_T; +#endif + #ifdef _HD_ - PERSISTENT_ALARM_BLOOD_FLOW_SIGNAL_STRENGTH, ///< Blood flow signal strength too low - PERSISTENT_ALARM_DIALYSATE_FLOW_SIGNAL_STRENGTH, ///< Dialysate flow signal strength too low +typedef enum +{ + PLACE_HOLDER = 0, + NUM_OF_FPGA_SENSOR_GROUPS +} FPGA_PERSISTENT_ALARMS_GROUP_T; #endif -#ifdef _DG_ - PERSISTENT_ALARM_INLET_WATER_HIGH_TEMPERATURE, ///< Inlet water high temperature persistent alarm - PERSISTENT_ALARM_INLET_WATER_LOW_TEMPERATURE, ///< Inlet water low temperature persistent alarm - PERSISTENT_ALARM_INLET_WATER_HIGH_CONDUCTIVITY, ///< Inlet water high conductivity persistent alarm - PERSISTENT_ALARM_INLET_WATER_LOW_CONDUCTIVITY, ///< Inlet water low conductivity persistent alarm - PERSISTENT_ALARM_RO_REJECTION_RATIO_OUT_OF_RANGE, ///< RO rejection ratio out of range persistent alarm - PERSISTENT_ALARM_INLET_WATER_LOW_PRESSURE, ///< Inlet water low pressure persistent alarm - PERSISTENT_ALARM_INLET_WATER_PRESSURE_FAULT, ///< Inlet water pressure fault persistent alarm - PERSISTENT_ALARM_POST_ACID_CONDUCTIVITY_OUT_OF_RANGE, ///< Post acid concentrate conductivity out of range - PERSISTENT_ALARM_POST_BICARB_CONDUCTIVITY_OUT_OF_RANGE, ///< Post bicarbonate concentrate conductivity out of range - PERSISTENT_ALARM_RO_PUMP_FLOW_RATE_OUT_OF_RANGE, ///< RO pump flow rate out of range - PERSISTENT_ALARM_CP1_SPEED_CONTROL_ERROR, ///< Concentrate pump CP1 speed control error - PERSISTENT_ALARM_CP2_SPEED_CONTROL_ERROR, ///< Concentrate pump CP2 speed control error -#endif - NUM_OF_PERSISTENT_ALARM ///< Number of persistent alarms -} PERSISTENT_ALARM_T; // ********** public function prototypes ********** // Persistent period resolution is in ms -void initPersistentAlarm( PERSISTENT_ALARM_T alarmIndex, ALARM_ID_T alarm, BOOL isClearable, - U32 persistentClearPeriod, U32 persistentTriggerPeriod ); -void checkPersistentAlarm( PERSISTENT_ALARM_T const alarmIndex, BOOL const isOutOfRange, F32 const data ); +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 ); +BOOL 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 errorCount, U32 readCount, U32 sensorIndex ); + /**@}*/ #endif