Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r969ec174d1d6254ef5b7f90723d5b5313cfa3932 -r9438614daab0edede947e39a9d563fce8f66225e --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 969ec174d1d6254ef5b7f90723d5b5313cfa3932) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 9438614daab0edede947e39a9d563fce8f66225e) @@ -55,12 +55,9 @@ #define SHIFT_BITS_BY_2_FOR_AVERAGING 2U ///< Shift the ADCs of the temperature sensors by 2 to average them. #define INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD ( 5 * MS_PER_SECOND ) ///< Persistence period for temperature sensors out of range error period. -#define MAX_WATER_HIGH_INPUT_TEMPERATURE 39U ///< Maximum water input high temperature. -#define MIN_WATER_HIGH_INPUT_TEMPERATURE 37U ///< Minimum water input high temperature. +#define MIN_WATER_INPUT_TEMPERATURE 22U ///< Minimum water input temperature. +#define MAX_WATER_INPUT_TEMPERATURE 35U ///< Maximum water input temperature. -#define MAX_WATER_LOW_INPUT_TEMPERATURE 24U ///< Maximum water input low temperature. -#define MIN_WATER_LOW_INPUT_TEMPERATURE 22U ///< Minimum water input low temperature. - #define HEATERS_INTERNAL_TEMPERTURE_CALCULATION_INTERVAL 20U ///< Time interval that is used to calculate the heaters internal temperature. #define HEATERS_INTERNAL_TC_ADC_TO_TEMP_CONVERSION_COEFF 0.25 ///< Heaters internal temperature sensors ADC to temperature conversion coefficient. #define HEATERS_COLD_JUNCTION_ADC_TO_TEMP_CONVERSION_COEFF 0.0625 ///< Heaters cold junction temperature sensors ADC to temperature conversion coefficient. @@ -169,7 +166,7 @@ static BOOL isADCReadValid( U32 sensorIndex, U32 fpgaError, U32 fpgaCount ); static void processADCRead( U32 sensorIndex, S32 adc ); static void publishTemperatureSensorsData( void ); -static void monitorTemperatureSnsrs( U32 sensorIndex, F32 temperature ); +static void monitorTemperatureSnsrs( U32 sensorIndex ); /*********************************************************************//** * @brief @@ -273,9 +270,6 @@ initPersistentAlarm( ALARM_ID_INLET_WATER_LOW_TEMPERATURE, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD ); - initPersistentAlarm( ALARM_ID_INLET_WATER_TEMPERATURE_OUT_OF_RANGE, INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD, - INLET_WATER_TEMPERATURE_PERSISTENCE_PERIOD ); - // Persistent alarm for the temperature sensors range check initPersistentAlarm( ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE, TEMP_SENSORS_OUT_OF_RANGE_PERSISTENT_PEROID_MS, TEMP_SENSORS_OUT_OF_RANGE_PERSISTENT_PEROID_MS ); @@ -365,28 +359,11 @@ { #ifndef DISABLE_WATER_QUALITY_CHECK F32 const temperature = getTemperatureValue( TEMPSENSORS_INLET_PRIMARY_HEATER ); + BOOL const isWaterTempTooHigh = temperature > MAX_WATER_INPUT_TEMPERATURE; + BOOL const isWaterTempTooLow = temperature < MIN_WATER_INPUT_TEMPERATURE; - BOOL isWaterTempInHighRange = ( temperature >= MIN_WATER_HIGH_INPUT_TEMPERATURE ) && - ( temperature <= MAX_WATER_HIGH_INPUT_TEMPERATURE ) ? TRUE : FALSE; - - BOOL isWaterTempInLowRange = ( temperature >= MIN_WATER_LOW_INPUT_TEMPERATURE ) && - ( temperature <= MAX_WATER_LOW_INPUT_TEMPERATURE ) ? TRUE : FALSE; - - BOOL isWaterTempOutOfRange = ( temperature < MIN_WATER_LOW_INPUT_TEMPERATURE ) && - ( temperature > MAX_WATER_HIGH_INPUT_TEMPERATURE ) ? TRUE : FALSE; - - if ( TRUE == isWaterTempInHighRange ) // warning alarm - { - checkPersistentAlarm( ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, isWaterTempInHighRange, temperature, MAX_WATER_HIGH_INPUT_TEMPERATURE ); - } - else if ( TRUE == isWaterTempInLowRange ) // warning alarm - { - checkPersistentAlarm( ALARM_ID_INLET_WATER_LOW_TEMPERATURE, isWaterTempInLowRange, temperature, MIN_WATER_LOW_INPUT_TEMPERATURE ); - } - else if ( TRUE == isWaterTempOutOfRange ) // alarm - { - checkPersistentAlarm( ALARM_ID_INLET_WATER_TEMPERATURE_OUT_OF_RANGE, isWaterTempOutOfRange, temperature, MAX_WATER_HIGH_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 ); #endif } @@ -405,7 +382,7 @@ if ( sensorIndex < NUM_OF_TEMPERATURE_SENSORS ) { - if ( tempSensors[ sensorIndex ].temperatureValues.override == OVERRIDE_KEY ) + if ( OVERRIDE_KEY == tempSensors[ sensorIndex ].temperatureValues.override ) { temperature = tempSensors[ sensorIndex ].temperatureValues.ovData; } @@ -745,7 +722,7 @@ tempSensors[ sensorIndex ].temperatureValues.data = temperature; // Monitor the temperature value - monitorTemperatureSnsrs( sensorIndex, temperature ); + monitorTemperatureSnsrs( sensorIndex ); } /*********************************************************************//** @@ -912,17 +889,14 @@ * @details Inputs: tempSensors * @details Outputs: tempSensors * @param sensorIndex the index of the temperature sensor - * @param temperature the temperature value to be checked * @return none *************************************************************************/ -static void monitorTemperatureSnsrs( U32 sensorIndex, F32 temperature ) +static void monitorTemperatureSnsrs( U32 sensorIndex ) { - // The maximum allowed temperature is different for the sensors that are in the fluid path - // with the ones that are not in the fluid path - F32 maxLimit = tempSensors[ sensorIndex ].maxAllowedTemperature; + F32 temperature = getTemperatureValue( sensorIndex ); // Check both temperature and to be in range - if ( ( temperature < TEMP_SENSORS_MIN_ALLOWED_DEGREE_C ) || ( temperature > maxLimit ) ) + if ( ( temperature < TEMP_SENSORS_MIN_ALLOWED_DEGREE_C ) || ( temperature > tempSensors[ sensorIndex ].maxAllowedTemperature ) ) { // TODO investigate //checkPersistentAlarm( ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE, TRUE, sensorIndex, temperature ); @@ -951,7 +925,7 @@ if ( sensorIndex < NUM_OF_TEMPERATURE_SENSORS ) { - if ( isTestingActivated() ) + if ( TRUE == isTestingActivated() ) { result = TRUE; tempSensors[ sensorIndex ].temperatureValues.ovData = temperature; @@ -977,7 +951,7 @@ if ( sensorIndex < NUM_OF_TEMPERATURE_SENSORS ) { - if ( isTestingActivated() ) + if ( TRUE == isTestingActivated() ) { result = TRUE; tempSensors[ sensorIndex ].temperatureValues.override = OVERRIDE_RESET; @@ -1001,7 +975,7 @@ { BOOL result = FALSE; - if ( isTestingActivated() ) + if ( TRUE == isTestingActivated() ) { U32 interval = value / TASK_PRIORITY_INTERVAL; @@ -1025,7 +999,7 @@ { BOOL result = FALSE; - if ( isTestingActivated() ) + if ( TRUE == isTestingActivated() ) { result = TRUE; tempSensorsPublishInterval.override = OVERRIDE_RESET;