Index: firmware/App/Controllers/TemperatureSensors.h =================================================================== diff -u -r2666279eebfdc11eb611219cb03ba2549f86e381 -r3b70632c04247a6973960e1f37ae73eb4384a6b7 --- firmware/App/Controllers/TemperatureSensors.h (.../TemperatureSensors.h) (revision 2666279eebfdc11eb611219cb03ba2549f86e381) +++ firmware/App/Controllers/TemperatureSensors.h (.../TemperatureSensors.h) (revision 3b70632c04247a6973960e1f37ae73eb4384a6b7) @@ -1,63 +1,112 @@ -/**********************************************************************//** - * - * 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 TemperatureSensors.h - * - * @date 7-Apr-2020 - * @author Dara Navaei - * - * @brief DG temperature sensors controller - * - **************************************************************************/ +/************************************************************************** +* +* 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 TemperatureSensors.h +* +* @author (last) Michael Garthwaite +* @date (last) 30-Aug-2022 +* +* @author (original) Dara Navaei +* @date (original) 08-Apr-2020 +* +***************************************************************************/ #ifndef __TEMPERATURESENSORS_H__ #define __TEMPERATURESENSORS_H__ -#include "Common.h" +#include "DGCommon.h" +#include "NVDataMgmt.h" /** * @defgroup TemperatureSensors TemperatureSensors - * @brief Temperature Sensors driver module. - * Reads and processes the temperature sensors. + * @brief Temperature Sensors driver module. Reads and processes the temperature sensors. + * TODO add the sensors hardware * * @addtogroup TemperatureSensors * @{ */ -/// Sensors name +// ********** public definitions ********** + +/// Enumeration of temperature sensors. typedef enum SENSORS_NAME { - TEMPSENSORS_INLET_PRIMARY_HEATER_TEMP_SENSOR = 0, ///< Inlet primary heaters temperature sensor - TEMPSENSORS_OUTLET_PRIMARY_HEATER_TEMP_SENSOR, ///< Outlet primary heaters temperature sensor - TEMPSENSORS_CONDUCTIVITY_SENSOR_1_TEMP_SENSOR, ///< Conductivity sensor 1 temperature sensor - TEMPSENSORS_CONDUCTIVITY_SENSOR_2_TEMP_SENSOR, ///< Conductivity sensor 2 temperature sensor - TEMPSENSORS_OUTLET_REDUNDANCY_TEMP_SENSOR, ///< Outlet redundancy temperature sensor - TEMPSENSORS_INLET_DIALYSATE_TEMP_SENSOR, ///< Inlet dialysate temperature sensor - TEMPSENSORS_PRIMARY_HEATER_THERMO_COUPLE_TEMP_SENSOR, ///< Primary heaters internal temperature sensor - TEMPSENSORS_TRIMMER_HEATER_THERMO_COUPLE_TEMP_SENSOR, ///< Trimmer heater internal temperature sensor - TEMPSENSORS_PRIMARY_HEATER_COLD_JUNCTION_TEMP_SENSOR, ///< Primary heaters cold junction temperature sensor - TEMPSENSORS_TRIMMER_HEATER_COLD_JUNCTION_TEMP_SENSOR, ///< Trimmer heater cold junction temperature sensor - TEMPSENSORS_PRIMARY_HEATER_INTERNAL_TEMP, ///< Primary heaters internal temperature - TEMPSENSORS_TRIMMER_HEATER_INTERNAL_TEMP, ///< Trimmer heater internal temperature - NUM_OF_TEMPERATURE_SENSORS ///< Number of temperature sensors + TEMPSENSORS_INLET_PRIMARY_HEATER = 0, ///< Inlet primary heaters temperature sensor + TEMPSENSORS_HEAT_DISINFECT, ///< Heat disinfect temperature sensor + TEMPSENSORS_OUTLET_PRIMARY_HEATER, ///< Outlet primary heaters temperature sensor + TEMPSENSORS_CONDUCTIVITY_SENSOR_1, ///< Conductivity sensor 1 temperature sensor + TEMPSENSORS_CONDUCTIVITY_SENSOR_2, ///< Conductivity sensor 2 temperature sensor + TEMPSENSORS_OUTLET_REDUNDANT, ///< Outlet redundant temperature sensor + TEMPSENSORS_INLET_DIALYSATE, ///< Inlet dialysate temperature sensor + TEMPSENSORS_PRIMARY_HEATER_THERMO_COUPLE, ///< Primary heaters internal temperature sensor + TEMPSENSORS_TRIMMER_HEATER_THERMO_COUPLE, ///< Trimmer heater internal temperature sensor + TEMPSENSORS_PRIMARY_HEATER_COLD_JUNCTION, ///< Primary heaters cold junction temperature sensor + TEMPSENSORS_TRIMMER_HEATER_COLD_JUNCTION, ///< Trimmer heater cold junction temperature sensor + TEMPSENSORS_PRIMARY_HEATER_INTERNAL, ///< Primary heaters internal temperature + TEMPSENSORS_TRIMMER_HEATER_INTERNAL, ///< Trimmer heater internal temperature + TEMPSENSORS_FPGA_BOARD_SENSOR, ///< FPGA board temperature sensor + TEMPSENSORS_LOAD_CELL_A1_B1, ///< Load cell A1/B1 temperature sensor + TEMPSENSORS_LOAD_CELL_A2_B2, ///< Load cell A2/B2 temperature sensor + TEMPSENSORS_INTERNAL_TRO_RTD, ///< TRo RTD internal temperature sensor + TEMPSENSORS_INTERNAL_TDI_RTD, ///< TDi RTD internal temperature sensor + TEMPSENSORS_INTERNAL_THD_RTD, ///< THd RTD internal temperature sensor + TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR, ///< Conductivity sensor temperature sensor + TEMPSENSORS_BAROMETRIC_TEMP_SENSOR, ///< Barometric temperature sensor + NUM_OF_TEMPERATURE_SENSORS ///< Number of temperature sensors } TEMPERATURE_SENSORS_T; -void initTemperatureSensors ( void ); +/// Temperature sensors data. +typedef struct +{ + F32 inletPrimaryHeater; ///< Inlet primary heater temperature sensor + F32 heatDisinfect; ///< Heat Disinfect temperature sensor + F32 outletPrimaryHeater; ///< Outlet primary heater temperature sensor + F32 conductivitySensor1; ///< Conductivity sensor 1 temperature sensor + F32 conductivitySensor2; ///< Conductivity sensor 2 temperature sensor + F32 outletRedundant; ///< Outlet redundant temperature sensor + F32 inletDialysate; ///< Inlet dialysate temperature sensor + F32 primaryHeaterThermocouple; ///< Primary heaters thermocouple sensor + F32 trimmerHeaterThermocouple; ///< Trimmer heater thermocouple sensor + F32 priamyHeaterColdjunction; ///< Primary heaters cold junction temperature sensor + F32 trimmerHeaterColdjunction; ///< Trimmer heater cold junction temperature sensor + F32 primaryHeaterInternal; ///< Primary heaters internal temperature (calculated from thermocouple and cold junction) + F32 trimmerHeaterInternal; ///< Trimmer heater internal temperature (calculated from thermocouple and cold junction) + F32 fpgaBoard; ///< FPGA board temperature sensor + F32 loadCellA1B1; ///< Load cell A1/B1 temperature sensor + F32 loadCellA2B2; ///< Load cell A2/B2 temperature sensor + F32 internalTHDORTD; ///< THDo RTD channel temperature sensor + F32 internalTDIRTD; ///< TDI RTD channel temperature sensor + F32 interalTHDRTD; ///< THd RTD channel temperature sensor + F32 internalCondSnsrTemp; ///< Conductivity Sensor internal temperature sensor + U32 primaryThermoCoupleRaw; ///< Primary heaters thermocouple raw ADC value // TODO remove later? + U32 primaryColdjuncRaw; ///< Primary heaters cold junction raw ADC value // TODO remove later? + U32 trimmerThermoCoupleRaw; ///< Trimmer heater thermocouple raw ADC value // TODO remove later? + U32 trimmerColdjuncRaw; ///< Trimmer heater cold junction raw ADC value // TODO remove later? + S32 cond1Raw; ///< Conductivity sensor 1 raw temperature ADC value // TODO remove later? + S32 cond2Raw; ///< Conductivity sensor 2 raw temperature ADC value // TODO remove later? +} TEMPERATURE_SENSORS_DATA_T; -SELF_TEST_STATUS_T execTemperatureSensorsSelfTest ( void ); +// ********** public function prototypes ********** -void execTemperatureSensors ( void ); +void initTemperatureSensors( void ); -DATA_ARRAY_GET_PROTOTYPE ( F32, getTemperatureValue, sensor ); +SELF_TEST_STATUS_T execTemperatureSensorsSelfTest( void ); -BOOL testSetMeasuredTemperatureOverride ( U32 sensor, F32 temperature ); -BOOL testResetMeasuredTemperatureOverride ( U32 sensor ); +void execTemperatureSensors( void ); +void checkInletWaterTemperature( void ); -BOOL testSetTemperatureSensorsPublishIntervalOverride ( U32 value ); -BOOL testResetTemperatureSensorsPublishIntervalOverride ( void ); +F32 getTemperatureValue( U32 sensorIndex ); +BOOL testSetMeasuredTemperatureOverride( U32 sensorIndex, F32 temperature ); +BOOL testResetMeasuredTemperatureOverride( U32 sensorIndex ); + +BOOL testSetTemperatureSensorsPublishIntervalOverride( U32 value ); +BOOL testResetTemperatureSensorsPublishIntervalOverride( void ); + +/**@}*/ + #endif