/************************************************************************** * * 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 * * @author (last) Quang Nguyen * @date (last) 05-Feb-2021 * * @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 return indication on whether alarm is triggered or alarm condition is cleared. * * @addtogroup PersistentAlarm * @{ */ // ********** public definitions ********** #ifdef _DG_ typedef enum { TWO_WIRE_ADC_TEMP_SENSORS = 0, ///< Two wire ADC temperature sensors. THD_ADC_TEMP_SENSORS, ///< THd ADC temperature sensors. TDI_ADC_TEMP_SENSORS, ///< TDi ADC temperature sensors. TRO_ADC_TEMP_SENSORS, ///< TRo ADC temperature sensors. CPI_COND_SENSOR, ///< CPi conductivity sensor. CPO_COND_SENSOR, ///< CPo conductivity sensor. PRESSURE_SENSORS, ///< Pressure sensors. FLOW_SENSORS, ///< Flow sensors. BARO_SENSOR, ///< Barometric sensor. NUM_OF_FPGA_SENSOR_GROUPS ///< Number of FPGA sensor groups. } FPGA_PERSISTENT_ALARMS_GROUP_T; #endif #ifdef _HD_ typedef enum { PLACE_HOLDER = 0, NUM_OF_FPGA_SENSOR_GROUPS } FPGA_PERSISTENT_ALARMS_GROUP_T; #endif // ********** public function prototypes ********** // Persistent period resolution is in ms 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 ); /**@}*/ #endif