Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r2e4afce5a9fd0392b330461ed38322ecadd59aa1 -r2fea76e972a450a97c74b2a9f627095032a3b586 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 2e4afce5a9fd0392b330461ed38322ecadd59aa1) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 2fea76e972a450a97c74b2a9f627095032a3b586) @@ -147,14 +147,6 @@ static const F32 TEMP_EQUATION_COEFF_A = 3.9083E-3; ///< ADC to temperature conversion coefficient A. static const F32 TEMP_EQUATION_COEFF_B = -5.775E-7; ///< ADC to temperature conversion coefficient B. -/// Max FPGA error count limit. -static const F32 MAX_FPGA_ERROR_COUNT_LIMIT = TEMPERATURE_SENSORS_FPGA_ERROR_PERSISTENT_PERIOD / - ( FPGA_RAW_ADC_READ_INTERVAL_COUNT * TASK_PRIORITY_INTERVAL ); - -/// Max internal error count limit. -static const F32 MAX_INTERNAL_ERROR_COUNT_LIMIT = TEMPERATURE_SENSORS_INTERNAL_ERROR_PERSISTENT_PERIOD / - ( FPGA_RAW_ADC_READ_INTERVAL_COUNT * TASK_PRIORITY_INTERVAL ); - // ********** private function prototypes ********** static TEMPSENSORS_SELF_TEST_STATES_T handleSelfTestStart( void ); @@ -258,21 +250,13 @@ tempSensors[ TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR ].conversionCoeff = conversionCoeff; // Persistent alarms for inlet water high/low temperature - initPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_HIGH_TEMPERATURE, ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, - TRUE, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD ); - initPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_LOW_TEMPERATURE, ALARM_ID_INLET_WATER_LOW_TEMPERATURE, - TRUE, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD ); + initPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD ); + initPersistentAlarm( ALARM_ID_INLET_WATER_LOW_TEMPERATURE, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD ); // Persistent alarm for temperature sensors internal error // When the FPGA read count does not increment for a period of time, it is considered as an internal error of the temperature sensors // driver. This is internal because FPGA does not error out if the FPGA read count does not increment. - initPersistentAlarm( PERSISTENT_ALARM_TEMP_SENSORS_INTERNAL_ERROR, ALARM_ID_TEMPERATURE_SENSORS_FAULT, - TRUE, TEMPERATURE_SENSORS_INTERNAL_ERROR_PERSISTENT_PERIOD, TEMPERATURE_SENSORS_INTERNAL_ERROR_PERSISTENT_PERIOD ); - - // Persistent alarm for temperature sensors FPGA error - // This is FPGA error which is read from FPGA and it should be 0. If it is not 0 for a period of time, an alarm is raised. - initPersistentAlarm( PERSISTENT_ALARM_TEMP_SENSORS_FPGA_ERROR, ALARM_ID_TEMPERATURE_SENSORS_FAULT, TRUE, - TEMPERATURE_SENSORS_FPGA_ERROR_PERSISTENT_PERIOD, TEMPERATURE_SENSORS_FPGA_ERROR_PERSISTENT_PERIOD ); + initPersistentAlarm( ALARM_ID_TEMPERATURE_SENSORS_FAULT, TEMPERATURE_SENSORS_FPGA_ERROR_PERSISTENT_PERIOD, TEMPERATURE_SENSORS_FPGA_ERROR_PERSISTENT_PERIOD ); } /*********************************************************************//** @@ -353,8 +337,8 @@ BOOL const isWaterTempTooHigh = temperature > MAX_WATER_INPUT_TEMPERATURE; BOOL const isWaterTempTooLow = temperature < MIN_WATER_INPUT_TEMPERATURE; - checkPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_HIGH_TEMPERATURE, isWaterTempTooHigh, temperature, MAX_WATER_INPUT_TEMPERATURE ); - checkPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_LOW_TEMPERATURE, isWaterTempTooLow, temperature, MIN_WATER_INPUT_TEMPERATURE ); + checkPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, isWaterTempTooHigh, temperature, MAX_WATER_INPUT_TEMPERATURE ); + checkPersistentAlarm( ALARM_ID_INLET_WATER_LOW_TEMPERATURE, isWaterTempTooLow, temperature, MIN_WATER_INPUT_TEMPERATURE ); } /*********************************************************************//** @@ -592,8 +576,7 @@ } } - checkPersistentAlarm( PERSISTENT_ALARM_TEMP_SENSORS_INTERNAL_ERROR, !isFPGACountChanging, sensorIndex, MAX_INTERNAL_ERROR_COUNT_LIMIT ); - checkPersistentAlarm( PERSISTENT_ALARM_TEMP_SENSORS_FPGA_ERROR, !isFPGAErrorZero, sensorIndex, MAX_FPGA_ERROR_COUNT_LIMIT ); + checkPersistentAlarm( ALARM_ID_TEMPERATURE_SENSORS_FAULT, !isFPGACountChanging || !isFPGAErrorZero, sensorIndex, TEMPERATURE_SENSORS_FPGA_ERROR_PERSISTENT_PERIOD ); return isADCValid; }