Index: firmware/App/Monitors/Temperature.c =================================================================== diff -u -rea58258093207cb49785aa04ab1e19065166cac6 -ra7af93efacb700dc80504906356851e9991ba3b1 --- firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision ea58258093207cb49785aa04ab1e19065166cac6) +++ firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision a7af93efacb700dc80504906356851e9991ba3b1) @@ -7,8 +7,8 @@ * * @file Temperature.c * -* @author (last) Michael Garthwaite -* @date (last) 06-Mar-2026 +* @author (last) Vinayakam Mani +* @date (last) 14-Apr-2026 * * @author (original) Vinayakam Mani * @date (original) 25-Sep-2024 @@ -349,13 +349,13 @@ { CONDUCTIVITY_SENSORS_T sensor = ( DIAL_TEMP_D28 == i ? D27_COND : D29_COND ); - if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) != TRUE ) + if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_9_HW ) != TRUE ) { - temperatureC = getTeensyConductivityTemperatureValue( sensor ); + temperatureC = getConductivityTemperature( sensor ); } else { - temperatureC = getConductivityTemperature( sensor ); + temperatureC = getTeensyConductivityTemperatureValue( sensor ); } currentIndex = dialTempMovingAvgData[ i ].dialTempSamplesNextIndex; @@ -382,6 +382,7 @@ *************************************************************************/ void checkDialysateTemperatureSensors( void ) { +#ifdef ENABLE_ALARM_3 DD_OP_MODE_T op = getCurrentOperationMode(); if ( ( DD_MODE_GEND == op ) || ( DD_MODE_HEAT == op ) ) @@ -405,70 +406,41 @@ tempDriftEventCheck = FALSE; } } +#else + resetPersistentAlarmTimer( ALARM_ID_DD_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE ); + tempDriftEventCheck = FALSE; +#endif } /*********************************************************************//** * @brief - * The getD4AverageTemperature function returns the average temperature - * for D4 temp sensor. + * The getFilteredTemperatureValue function gets the filtered current + * Temperature sensor temperature (in deg C) for a given sensor. + * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. * @details \b Inputs: filteredcurrentTemperatureReadings * @details \b Outputs: none - * @return the D4 average temperature + * @param sensor ID of temperature sensor to get temperature reading for. + * @return The filtered current temperature sensor temperature (in deg C) of + * the given sensor. *************************************************************************/ -F32 getD4AverageTemperature( void ) +F32 getFilteredTemperatureValue( TEMPERATURE_SENSORS_T sensor ) { - F32 temperature = getF32OverrideValue( &filteredcurrentTemperatureReadings[ D4_TEMP ] ); + F32 temperature = 0.0F; - return temperature; -} + if ( sensor < NUM_OF_TEMPERATURE_SENSORS ) + { + temperature = getF32OverrideValue( &filteredcurrentTemperatureReadings[ sensor ] ); + } + else + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_TEMPERATURE_SENSOR_SELECTED3, sensor ) + } -/*********************************************************************//** - * @brief - * The getD50AverageTemperature function returns the average temperature - * for D50 temp sensor. - * @details \b Inputs: filteredcurrentTemperatureReadings - * @details \b Outputs: none - * @return the D50 average temperature - *************************************************************************/ -F32 getD50AverageTemperature( void ) -{ - F32 temperature = getF32OverrideValue( &filteredcurrentTemperatureReadings[ D50_TEMP ] ); - return temperature; } /*********************************************************************//** * @brief - * The getD99AverageTemperature function returns the average temperature - * for D99 temperature sensor. - * @details \b Inputs: filteredcurrentTemperatureReadings - * @details \b Outputs: none - * @return the D99 average temperature - *************************************************************************/ -F32 getD99AverageTemperature( void ) -{ - F32 temperature = getF32OverrideValue( &filteredcurrentTemperatureReadings[ D99_TEMP ] ); - - return temperature; -} - -/*********************************************************************//** - * @brief - * The getD78AverageTemperature function returns the average temperature - * for D78 temperature sensor. - * @details \b Inputs: filteredcurrentTemperatureReadings - * @details \b Outputs: none - * @return the D78 average temperature - *************************************************************************/ -F32 getD78AverageTemperature( void ) -{ - F32 temperature = getF32OverrideValue( &filteredcurrentTemperatureReadings[ D78_TEMP ] ); - - return temperature; -} - -/*********************************************************************//** - * @brief * The getTempMovingAverageTimeInterval function calculates the temperature * interval used for sample collection based on the dialysate flow rate, * to find the average value. @@ -510,29 +482,29 @@ data.d99Temp = getTemperatureValue( D99_TEMP ); data.boardTemp = getTemperatureValue( BRD_TEMP ); - if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) != TRUE ) + if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_9_HW ) != TRUE ) { - data.d16CondTemp = getTeensyConductivityTemperatureValue( D17_COND ); - data.d28CondTemp = getTeensyConductivityTemperatureValue( D27_COND ); - data.d30CondTemp = getTeensyConductivityTemperatureValue( D29_COND ); - data.d44CondTemp = getTeensyConductivityTemperatureValue( D43_COND ); - data.d75CondTemp = getTeensyConductivityTemperatureValue( D74_COND ); - } - else - { data.d16CondTemp = getConductivityTemperature( D17_COND ); data.d28CondTemp = getConductivityTemperature( D27_COND ); data.d30CondTemp = getConductivityTemperature( D29_COND ); data.d44CondTemp = getConductivityTemperature( D43_COND ); data.d75CondTemp = getConductivityTemperature( D74_COND ); } + else + { + data.d16CondTemp = getTeensyConductivityTemperatureValue( D17_COND ); + data.d28CondTemp = getTeensyConductivityTemperatureValue( D27_COND ); + data.d30CondTemp = getTeensyConductivityTemperatureValue( D29_COND ); + data.d44CondTemp = getTeensyConductivityTemperatureValue( D43_COND ); + data.d75CondTemp = getConductivityTemperature( D74_COND ); + } - data.d4AvgTemp = getD4AverageTemperature(); - data.d50AvgTemp = getD50AverageTemperature(); - data.d99AvgTemp = getD99AverageTemperature(); + data.d4AvgTemp = getFilteredTemperatureValue( D4_TEMP ); + data.d50AvgTemp = getFilteredTemperatureValue( D50_TEMP ); + data.d99AvgTemp = getFilteredTemperatureValue( D99_TEMP ); data.d28AvgTemp = dialTempMovingAvgData[ DIAL_TEMP_D28 ].dialTempAvgC; data.d30AvgTemp = dialTempMovingAvgData[ DIAL_TEMP_D30 ].dialTempAvgC; - data.d78AvgTemp = getD78AverageTemperature(); + data.d78AvgTemp = getFilteredTemperatureValue( D78_TEMP ); data.d9PresTemp = getFilteredPressureSensorTemperature( D9_PRES ); data.d66PresTemp = getFilteredPressureSensorTemperature( D66_PRES ); data.d51PresTemp = getFilteredPressureSensorTemperature( D51_PRES );