Index: firmware/App/Controllers/Temperatures.c =================================================================== diff -u -rcc4f8440e8ad7fa8f2ced2467d922be7422c344c -r556e92463ab2f246b151d31d8bcd96b3ee87ad3f --- firmware/App/Controllers/Temperatures.c (.../Temperatures.c) (revision cc4f8440e8ad7fa8f2ced2467d922be7422c344c) +++ firmware/App/Controllers/Temperatures.c (.../Temperatures.c) (revision 556e92463ab2f246b151d31d8bcd96b3ee87ad3f) @@ -7,8 +7,8 @@ * * @file Temperatures.c * -* @author (last) Dara Navaei -* @date (last) 03-Mar-2022 +* @author (last) Darren Cox +* @date (last) 10-Mar-2022 * * @author (original) Dara Navaei * @date (original) 01-Aug-2021 @@ -34,17 +34,17 @@ #define TEMPERATURES_DATA_PUBLISH_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Temperatures publish data time interval. #define TEMPERATURES_ADC_READ_INTERVAL ( MS_PER_SECOND / ( 2 * TASK_GENERAL_INTERVAL ) ) ///< Temperatures ADC read time interval. -#define ADC_FPGA_READ_DELAY_COUNT 1.0 ///< FGPA read delay upon startup. +#define ADC_FPGA_READ_DELAY_COUNT 1.0F ///< FGPA read delay upon startup. #define TWELVE_BIT_RESOLUTION 4096U ///< 12 bit resolution conversion. -#define THERMISTOR_REFERENCE_VOLTAGE 3.0 ///< Thermistors source voltage. -#define THERMISTOR_REFERENCE_RESISTOR_AT_25 10000.0 ///< Thermistors reference resistor in ohms. -#define THERMISTOR_REFERENCE_TEMPERATURE 298.0 ///< Thermistors reference temperature in kelvin. -#define THERMISTOR_BETA_VALUE 3380.0 ///< Thermistor beta value. -#define CELSIUS_TO_KELVIN_CONVERSION 273.15 ///< Celsius to Kelvin temperature conversion. -#define ADC_BOARD_TEMP_SENSOR_CONVERSION_CONST_1 272.5 ///< ADC board temperature sensor conversion constant 1. +#define THERMISTOR_REFERENCE_VOLTAGE 3.0F ///< Thermistors source voltage. +#define THERMISTOR_REFERENCE_RESISTOR_AT_25 10000.0F ///< Thermistors reference resistor in ohms. +#define THERMISTOR_REFERENCE_TEMPERATURE 298.0F ///< Thermistors reference temperature in kelvin. +#define THERMISTOR_BETA_VALUE 3380.0F ///< Thermistor beta value. +#define CELSIUS_TO_KELVIN_CONVERSION 273.15F ///< Celsius to Kelvin temperature conversion. +#define ADC_BOARD_TEMP_SENSOR_CONVERSION_CONST_1 272.5F ///< ADC board temperature sensor conversion constant 1. #define ADC_BOARD_TEMP_SENSOR_CONVERSION_CONST_2 0x800000 ///< ADC board temperature sensor conversion constant 2. -#define MIN_ALLOWED_TEMPERATURE 0.0 ///< Thermistors/sensors minimum allowed temperature reading. -#define MAX_ALLOWED_TEMPERATURE 80.0 ///< Thermistors/sensors maximum allowed temperature reading. +#define MIN_ALLOWED_TEMPERATURE 0.0F ///< Thermistors/sensors minimum allowed temperature reading. +#define MAX_ALLOWED_TEMPERATURE 80.0F ///< Thermistors/sensors maximum allowed temperature reading. #define MAX_ALLOWED_TEMP_OUT_OF_RANGE_PERIOD ( 5 * MS_PER_SECOND ) ///< Thermistors/sensors maximum allowed temperature out of range period. #define DATA_PUBLISH_COUNTER_START_COUNT 6 ///< Data publish counter start count. @@ -398,19 +398,25 @@ } break; +#ifndef _VECTORCAST_ + // The default cannot be reached in VectorCAST since the cases are run in a for loop default: // Wrong sensor was called, raise an alarm SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_HD_INVALID_TEMPERATURE_SENSOR_SELECTED, sensor ); // Wrong sensor, return temperature to be -1 temperature = -1.0; break; +#endif } // TODO remove this code and the if statement. This configuration is until the new arterial sensor is implemented everywhere so the temperature calibration // structure can be updated permanently. This way the PBA sensor will be replaced with the new arterial sensor. This is to make sure the // calibration structure does not fail in different devices with different sensors temperaturesStatus[ sensor ].temperatureValue.data = temperature; + +#ifndef _RELEASE_ if ( getSoftwareConfigStatus( SW_CONFIG_ENABLE_DVT_ARTERIAL_PRESSURE_SENSOR ) != SW_CONFIG_ENABLE_VALUE ) +#endif { // Apply the calibration record the temperature values prior to updating the structures temperaturesStatus[ sensor ].temperatureValue.data = @@ -453,7 +459,7 @@ ON_BOARD_THERMISTOR_REF_TEMP_INV; // Inverse the value to get the temperature in Kelvin and then convert it to Celsius - F32 temperature = ( 1 / invTemperature ) - CELSIUS_TO_KELVIN_CONVERSION; + F32 temperature = ( 1.0F / invTemperature ) - CELSIUS_TO_KELVIN_CONVERSION; return temperature; }