/************************************************************************** * * Copyright (c) 2019-2020 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) Quang Nguyen * @date (last) 02-Sep-2020 * * @author (original) Quang Nguyen * @date (original) 17-Aug-2020 * ***************************************************************************/ #ifndef __PERSISTENTALARM_H__ #define __PERSISTENTALARM_H__ #include "Common.h" /** * @defgroup PersistentAlarm PersistentAlarm * @brief Persistent alarm monitor module. * Check for persistent error and throw appropriate alarm. * * @addtogroup PersistentAlarm * @{ */ // ********** public definitions ********** typedef enum PersistentAlarm { #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 #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 PERSISTENT_ALARM_THERMISTOR_TEMPERATURE_OUT_OF_RANGE, ///< Thermistor temperature out of range persistent alarm PERSISTENT_ALARM_FANS_RPM_OUT_RANGE, ///< Fans RPM out of range persistent alarm PERSISTENT_ALARM_TEMP_SENSORS_INTERNAL_ERROR, ///< Temperature sensors internal error alarm PERSISTENT_ALARM_TEMP_SENSORS_FPGA_ERROR, ///< Temperature sensors FPGA error alarm #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 ); /**@}*/ #endif