Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r9102c5da21a15bdaf4bb3bc38795ceb064e3c443 -rf8bb43e62a4d10b64d8b197e372a56adfcfb88b9 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 9102c5da21a15bdaf4bb3bc38795ceb064e3c443) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision f8bb43e62a4d10b64d8b197e372a56adfcfb88b9) @@ -20,6 +20,7 @@ #include "Conductivity.h" #include "DialysatePumps.h" #include "FpgaDD.h" +#include "Heaters.h" #include "Level.h" #include "ModeGenDialysate.h" #include "ModeStandby.h" @@ -39,29 +40,29 @@ // ********** private definitions ********** #define FRESH_DIAL_PUMP_INITIAL_RPM 2500 ///< Nominal RPM target for fresh dialysate pump to maintain required pressure. -#define SPENT_DIAL_PUMP_INITIAL_RPM 2500 ///< Nominal RPM target for spent dialysate pump to maintain required pressure. +#define SPENT_DIAL_PUMP_INITIAL_RPM 2000 ///< Nominal RPM target for spent dialysate pump to maintain required pressure. #define HYD_CHAMBER_FLUID_TEMP_C_MIN 35.0F ///< Minimum hydraulics fluid temperature in deg celcius #define HYD_CHAMBER_PRES_CHECK_TIME_OUT ( 1 * SEC_PER_MIN * MS_PER_SECOND ) ///< Time out period when hydraulics chamber pressure check initiated #define SPENT_DIAL_PRES_CHECK_TIME_OUT ( 1 * SEC_PER_MIN * MS_PER_SECOND ) ///< Time out period when spent dialysate pressure check initiated -#define HYD_CHAMBER_TARGET_NEG_PRESS_MIN_PSI (-11.7877F) ///< Hydraulics chamber minimum negative pressure(D9/PHo) in psi. -#define HYD_CHAMBER_TARGET_NEG_PRESS_MAX_PSI (-12.2789F) ///< Hydraulics chamber maximum negative pressure(D9/PHo) in psi. -#define HYD_CHAMBER_TARGET_POS_PRESS_MIN_PSI ( 23.0F ) ///< Hydraulics chamber or fresh dialysate minimum positive pressure(D18/PDf) in psi. -#define HYD_CHAMBER_TARGET_POS_PRESS_MAX_PSI ( 25.0F ) ///< Hydraulics chamber or fresh dialysate maximum positive pressure(D18/PDf) in psi. -#define SPENT_DIAL_TARGET_POS_PRESS_MIN_PSI ( 29.0F ) ///< Spent dialysate minimum positive pressure(D51/PDs) in psi. -#define SPENT_DIAL_TARGET_POS_PRESS_MAX_PSI ( 30.0F ) ///< Spent dialysate maximum positive pressure(D18/PDs) in psi. +//TODO : Needs further finetuning. currently max negative pressure reaches around 11.5 psi +/- 5% values defined for now +//#define HYD_CHAMBER_TARGET_NEG_PRESS_MIN_PSI (-11.7877F) ///< Hydraulics chamber minimum negative pressure(D9/PHo) in psi. +//#define HYD_CHAMBER_TARGET_NEG_PRESS_MAX_PSI (-12.2789F) ///< Hydraulics chamber maximum negative pressure(D9/PHo) in psi. +#define HYD_CHAMBER_TARGET_NEG_PRESS_MIN_PSI (-10.000F) ///< Hydraulics chamber minimum negative pressure(D9/PHo) in psi. +#define HYD_CHAMBER_TARGET_NEG_PRESS_MAX_PSI (-12.075F) ///< Hydraulics chamber maximum negative pressure(D9/PHo) in psi. #define GEN_DIALYSATE_DATA_PUBLISH_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the gen dialysate mode data published. // ********** private data ********** static DD_GEND_MODE_STATE_T genDialysateState = DD_GEND_STATE_START; ///< Currently active gen dialysate state. -//static OVERRIDE_F32_T targetHydChamberFluidTemp; ///< Target hydraulics chamber fluid temperature. -//static BOOL isHydChamberTempinRange = FALSE; ///< Flag indicating hydraulics chamber water temperature is in range. +static OVERRIDE_F32_T targetHydChamberFluidTemp; ///< Target hydraulics chamber fluid temperature. static U32 hydChamberPressureCheckStartTimeMS; ///< Current time when hydraulics chamber pressure check satrted in milliseconds. static U32 spentDialPressureCheckStartTimeMS; ///< Current time when spent dialysate pressure check started in milliseconds. static OVERRIDE_U32_T isDialDeliveryInProgress; ///< To indicate dialysate started delivering to dialyzer for treatment (overrideable) static OVERRIDE_U32_T isDialysateGoodtoDeliver; ///< Flag indicating whether ready to deliver dialysate or not. static U32 genDialysateDataPublicationTimerCounter; ///< Used to schedule generate dialysate data publication to CAN bus. static OVERRIDE_U32_T genDialysateDataPublishInterval; ///< Generate dialysate mode data publish interval. +static F32 lastDialTargetTemperatureSet; ///< last dialysate target temperature set for heater control +static BOOL isTreatmentParamUpdated; ///< To indicate change in treatment parameters // ********** private function prototypes ********** @@ -74,6 +75,7 @@ static DD_GEND_MODE_STATE_T handleGenDProduceDialysateState( void ); static DD_GEND_MODE_STATE_T handleGenDDialysateDeliveryState( void ); static DD_GEND_MODE_STATE_T handleGenDDialysateDeliveryPauseState( void ); +static F32 getGenDialysateTargetTemperature( void ); static void publishGenDialysateModeData( void ); /*********************************************************************//** @@ -85,11 +87,10 @@ *************************************************************************/ void initGenDialysateMode( void ) { -// targetHydChamberFluidTemp.data = HYD_CHAMBER_FLUID_TEMP_C_MIN; -// targetHydChamberFluidTemp.ovInitData = HYD_CHAMBER_FLUID_TEMP_C_MIN; -// targetHydChamberFluidTemp.ovData = HYD_CHAMBER_FLUID_TEMP_C_MIN; -// targetHydChamberFluidTemp.override = OVERRIDE_RESET; -// isHydChamberTempinRange = FALSE; + targetHydChamberFluidTemp.data = HYD_CHAMBER_FLUID_TEMP_C_MIN; + targetHydChamberFluidTemp.ovInitData = HYD_CHAMBER_FLUID_TEMP_C_MIN; + targetHydChamberFluidTemp.ovData = HYD_CHAMBER_FLUID_TEMP_C_MIN; + targetHydChamberFluidTemp.override = OVERRIDE_RESET; genDialysateState = DD_GEND_STATE_START; isDialysateGoodtoDeliver.data = FALSE; isDialysateGoodtoDeliver.ovData = FALSE; @@ -106,6 +107,8 @@ genDialysateDataPublishInterval.ovInitData = 0; genDialysateDataPublishInterval.override = OVERRIDE_RESET; genDialysateDataPublicationTimerCounter = 0; + lastDialTargetTemperatureSet = 0.0F; + isTreatmentParamUpdated = FALSE; //Initialize balancing chamber module initBalanceChamber(); @@ -137,10 +140,10 @@ *************************************************************************/ void execGenDialysateMonitor( void ) { - // Read temperature and conducitivity - //F32 hydChamberTemperature = getTemperatureValue( TEMPSENSORS_HYDRAULICS_PRIMARY_HEATER ); - //F32 biCarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD1_SENSOR ); - //F32 acidBicarbMixConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD3_SENSOR ); + // Read temperature and conductivity + //F32 hydChamberTemperature = getTemperatureValue( D4_TEMP ); + //F32 biCarbConductivity = getConductivityValue( D17_COND ); + //F32 acidBicarbMixConductivity = getConductivityValue( D29_COND ); // Monitor critical parameter while balancing chamber fill is in progress if ( TRUE == getBalancingChamberFillinProgressStatus() ) @@ -175,18 +178,24 @@ valveControlForBCClosedState(); setHydValvesStatetoClosedState(); setUFValvesStatetoClosedState(); + setValveState( M4_VALV, VALVE_STATE_OPEN ); // Get the target temperature from TD - //targetHydChamberFluidTemp.data = HYD_CHAMBER_FLUID_TEMP_C_MIN; + targetHydChamberFluidTemp.data = getTDTargetDialysateTemperature(); + + // Turn on the primary heater + setHeaterTargetTemperature( D5_HEAT, getGenDialysateTargetTemperature() ); + startHeater( D5_HEAT ); + lastDialTargetTemperatureSet = getGenDialysateTargetTemperature(); break; case DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE: // Open up VHo valve - setValveState( VHO, VALVE_STATE_OPEN ); //D14 + setValveState( D14_VALV, VALVE_STATE_OPEN ); // Start timer for hyd chamber negative pressure check state hydChamberPressureCheckStartTimeMS = getMSTimerCount(); // Start D12/DGP pump - setDialysatePumpTargetRPM( FRESH_DIALYSATE_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM ); + setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM ); break; case DD_GEND_FRESH_DIALYSATE_PRESSURE_CHECK_STATE: @@ -198,38 +207,46 @@ // Start the timer for spent dialysate pressure check spentDialPressureCheckStartTimeMS = getMSTimerCount(); - // Open all balancing chamber valves for free flow - valveControlForBCOpenState(); + // Open only fresh side balancing chamber valves + valveControlForBCFreshSideOnlyOpenState(); // Make sure valves are in correct position - setValveState( VDR, VALVE_STATE_OPEN ); // Drain valve : D53 - setValveState( VDI, VALVE_STATE_CLOSED ); - setValveState( VDO, VALVE_STATE_CLOSED ); - setValveState( VDB2, VALVE_STATE_OPEN ); + setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve + setValveState( D35_VALV, VALVE_STATE_CLOSED ); // VDI + setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO + setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve // Start D48/SDP pump - setDialysatePumpTargetRPM( SPENT_DIALYSATE_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM ); + setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM ); break; case DD_GEND_PRODUCE_DIALYSATE_STATE: - // Enable bypass valve - setValveState( VDI, VALVE_STATE_CLOSED ); - setValveState( VDO, VALVE_STATE_CLOSED ); - setValveState( VDB2, VALVE_STATE_OPEN ); + //Close previously opened BC valves + valveControlForBCClosedState(); + + // Make sure bypass valve open condition + setValveState( D35_VALV, VALVE_STATE_CLOSED ); // VDI + setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO + setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve break; case DD_GEND_DIALYSATE_DELIVERY_STATE: // Disable bypass valve - setValveState( VDB2, VALVE_STATE_CLOSED ); - setValveState( VDI, VALVE_STATE_OPEN ); - setValveState( VDO, VALVE_STATE_OPEN ); + setValveState( D34_VALV, VALVE_STATE_CLOSED ); // Bypass valve + setValveState( D35_VALV, VALVE_STATE_OPEN ); // VDI + setValveState( D40_VALV, VALVE_STATE_OPEN ); // VDO break; case DD_GEND_DIALYSATE_DELIVERY_PAUSE: // stop the motor during pause conditions - signalDialysatePumpHardStop( FRESH_DIALYSATE_PUMP ); - signalDialysatePumpHardStop( SPENT_DIALYSATE_PUMP ); + signalDialysatePumpHardStop( D12_PUMP ); + signalDialysatePumpHardStop( D48_PUMP ); + requestConcentratePumpOff( D11_PUMP, FALSE ); + requestConcentratePumpOff( D10_PUMP, FALSE ); + stopHeater( D5_HEAT ); + stopHeater( D45_HEAT ); + //close the DD - water inlet and drain valves? break; @@ -259,11 +276,15 @@ } } + // Manage water inlet temperature if ( genDialysateState > DD_GEND_HYD_CHAMBER_WATER_INLET_CHECK_STATE ) { hydChamberWaterInletControl(); } + // Update any dynamic treatment parameter changes + updateTreatmentSettings(); + // execute current gen dialysate state switch ( genDialysateState ) { @@ -324,50 +345,36 @@ { // Read floater switch BOOL result = FALSE; - LEVEL_STATE_T floaterLevel1 = getLevelStatus( FLOATER_1 ); - //LEVEL_STATE_T floaterLevel2 = getLevelStatus( FLOATER_2 ); - //F32 hydChamberTemperature = getTemperatureValue( TEMPSENSORS_HYDRAULICS_PRIMARY_HEATER ); + LEVEL_STATE_T floaterLevel = getLevelStatus( D6_LEVL ); + // Get the target temperature from TD + targetHydChamberFluidTemp.data = getTDTargetDialysateTemperature(); + // High level is met - if ( STATE_HIGH == floaterLevel1 ) + if ( LEVEL_STATE_HIGH == floaterLevel ) { + // Get the target dialysate temperature + F32 targetTemperature = getGenDialysateTargetTemperature(); + //turn off inlet water valve - setValveState( VHI, VALVE_STATE_CLOSED ); + setValveState( D3_VALV, VALVE_STATE_CLOSED ); -// // read latest fluid temperature -// hydChamberTemperature = getTemperatureValue( TEMPSENSORS_HYDRAULICS_PRIMARY_HEATER ); -// -// if ( hydChamberTemperature < HYD_CHAMBER_FLUID_TEMP_C_MIN ) -// { -// //if fluid temp is lesser, turn on heater -// setHeaterTargetTemperature( DD_PRIMARY_HEATER, targetHydChamberFluidTemp ); -// startHeater( DD_PRIMARY_HEATER ); -// } -// else -// { -// //Turn heater off -// if ( TRUE == isHeaterOn( DD_PRIMARY_HEATER ) ) -// { -// stopHeater( DD_PRIMARY_HEATER ); -// } -// } + if ( lastDialTargetTemperatureSet != targetTemperature ) + { + // Update the target temperature for heater control + setHeaterTargetTemperature( D5_HEAT, targetTemperature ); + lastDialTargetTemperatureSet = targetTemperature; + } - // For now, lets not wait for temperature to reach target, as soon as water level is high - // enough, update results to true. + // Water level reached high. result = TRUE; } else { // if level is not met,allow inlet water to hydraulics chamber - setValveState( VHI, VALVE_STATE_OPEN ); + setValveState( D3_VALV, VALVE_STATE_OPEN ); } - // Invalid levels -// if ( ( STATE_LOW == floaterLevel1 ) && ( STATE_HIGH == floaterLevel2 ) ) -// { -// //TODO : check for invalid levels and trigger alarm -// } - return result; } @@ -386,7 +393,7 @@ // Allow water inlet to hydraulics chamber if ( TRUE == hydChamberWaterInletControl() ) { - // if water level, temp is range, move to pressure check state + // if water level is met, move to pressure check state setModeGenDStateTransition( DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE ); state = DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE; } @@ -405,10 +412,10 @@ static DD_GEND_MODE_STATE_T handleGenDHydChamberPressureCheckState( void ) { DD_GEND_MODE_STATE_T state = DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE; - F32 hydPressure = getFilteredPressure( PRESSURE_SENSOR_HYDRAULICS_OUTLET ); + F32 hydPressure = getFilteredPressure( D9_PRES ); // Hydraulics chamber negative pressure is in range ( -24 to -25 inHg ) - if ( ( hydPressure >= HYD_CHAMBER_TARGET_NEG_PRESS_MIN_PSI ) && ( hydPressure <= HYD_CHAMBER_TARGET_NEG_PRESS_MAX_PSI ) ) + if ( ( hydPressure <= HYD_CHAMBER_TARGET_NEG_PRESS_MIN_PSI ) && ( hydPressure >= HYD_CHAMBER_TARGET_NEG_PRESS_MAX_PSI ) ) { // Proceed to next state setModeGenDStateTransition( DD_GEND_FRESH_DIALYSATE_PRESSURE_CHECK_STATE ); @@ -436,10 +443,10 @@ static DD_GEND_MODE_STATE_T handleGenDFreshDialysatePressureCheckState( void ) { DD_GEND_MODE_STATE_T state = DD_GEND_FRESH_DIALYSATE_PRESSURE_CHECK_STATE; - F32 hydPressure = getFilteredPressure( PRESSURE_SENSOR_FRESH_DIALYSATE ); + F32 hydPressure = getFilteredPressure( D18_PRES ); - // Hydraulics chamber postive pressure is in range ( 23 to 25 psi ) - if ( ( hydPressure >= HYD_CHAMBER_TARGET_POS_PRESS_MIN_PSI ) && ( hydPressure <= HYD_CHAMBER_TARGET_POS_PRESS_MAX_PSI ) ) + // Hydraulics chamber postive pressure is in range + if ( ( hydPressure >= FRESH_DIAL_PRESSURE_MIN_PSIG ) && ( hydPressure <= FRESH_DIAL_PRESSURE_MAX_PSIG ) ) { // Proceed to next state setModeGenDStateTransition( DD_GEND_SPENT_DIALYSATE_PRESSURE_CHECK_STATE ); @@ -467,10 +474,10 @@ static DD_GEND_MODE_STATE_T handleGenDSpentDialysatePressureCheckState( void ) { DD_GEND_MODE_STATE_T state = DD_GEND_SPENT_DIALYSATE_PRESSURE_CHECK_STATE; - F32 spentdialPressure = getFilteredPressure( PRESSURE_SENSOR_SPENT_DIALYSATE ); + F32 spentdialPressure = getFilteredPressure( D51_PRES ); - // Spent dialysate pressure is in range ( 29 to 30 psi ) - if ( ( spentdialPressure >= SPENT_DIAL_TARGET_POS_PRESS_MIN_PSI ) && ( spentdialPressure <= SPENT_DIAL_TARGET_POS_PRESS_MAX_PSI ) ) + // Spent dialysate pressure is in range + if ( ( spentdialPressure >= SPENT_DIAL_PRESSURE_MIN_PSIG ) && ( spentdialPressure <= SPENT_DIAL_PRESSURE_MAX_PSIG ) ) { // Proceed to next state transitionToBalChamberFill(); @@ -504,7 +511,7 @@ execBalancingChamberControl(); //if the produced dialysate is good and TD asks for dialysate delivery - // move to next state + //move to next state if ( ( TRUE == getDialGoodToDeliverStatus() ) && ( FALSE == getTDDialyzerBypass() ) ) { setModeGenDStateTransition( DD_GEND_DIALYSATE_DELIVERY_STATE ); @@ -573,6 +580,43 @@ /*********************************************************************//** * @brief + * The setTreatmentParamUpdate function sets the flag to indicate one or more + * treatement parameters updated. + * gen dialysate mode. + * @details \b Inputs: none + * @details \b Outputs: isTreatmentParamUpdated + * @return none + *************************************************************************/ +void setTreatmentParamUpdate( void ) +{ + isTreatmentParamUpdated = TRUE; +} + +/*********************************************************************//** + * @brief + * The updateTreatmentSettings function updates the switching rate post the + * treatement parameters updated during treatement. + * @details \b Inputs: isTreatmentParamUpdated + * @details \b Outputs: balChamberSwitchingPeriod,isTreatmentParamUpdated. + * @return none + *************************************************************************/ +void updateTreatmentSettings( void ) +{ + // Update any dynamic treatment parameter changes + if ( TRUE == isTreatmentParamUpdated ) + { + // Update the Balancing chamber switching rate based on dialysis rate + updateBalChamberSwitchingPeriod(); + + //TODO: update others parameters setting as needed. + + //reset the flag + isTreatmentParamUpdated = FALSE; + } +} + +/*********************************************************************//** + * @brief * The getDialGoodToDeliverStatus function gets the dialysate good to deliver * status. * @details \b Inputs: isDialysateGoodtoDeliver @@ -581,13 +625,8 @@ *************************************************************************/ U32 getDialGoodToDeliverStatus( void ) { - U32 result = isDialysateGoodtoDeliver.data; + U32 result = getU32OverrideValue( &isDialysateGoodtoDeliver ); - if ( OVERRIDE_KEY == isDialysateGoodtoDeliver.override ) - { - result = isDialysateGoodtoDeliver.ovData; - } - return result; } @@ -601,13 +640,8 @@ *************************************************************************/ U32 getDialDeliveryProgressStatus( void ) { - U32 result = isDialDeliveryInProgress.data; + U32 result = getU32OverrideValue( &isDialDeliveryInProgress ); - if ( OVERRIDE_KEY == isDialDeliveryInProgress.override ) - { - result = isDialDeliveryInProgress.ovData; - } - return result; } @@ -621,18 +655,28 @@ *************************************************************************/ static U32 getGenDilaysateDataPublishInterval( void ) { - U32 result = genDialysateDataPublishInterval.data; + U32 result = getU32OverrideValue( &genDialysateDataPublishInterval ); - if ( OVERRIDE_KEY == genDialysateDataPublishInterval.override ) - { - result = genDialysateDataPublishInterval.ovData; - } - return result; } /*********************************************************************//** * @brief + * The getGenDialysateTargetTemperature function gets the target dialysate + * temperature. + * @details \b Inputs: getGenDialysateTargetTemperature + * @details \b Outputs: none + * @return the target dialysate temperature for the treatment. + *************************************************************************/ +static F32 getGenDialysateTargetTemperature( void ) +{ + F32 temp = getF32OverrideValue( &targetHydChamberFluidTemp ); + + return temp; +} + +/*********************************************************************//** + * @brief * The publishGenDialysateModeData function broadcasts the generate dialysate * mode data at defined interval. * @details \b Inputs: genDialysateDataPublicationTimerCounter @@ -649,13 +693,12 @@ data.genDialysateExecState = (U32)getCurrentGenDialysateState(); data.isDialDelInProgress = (BOOL)getDialDeliveryProgressStatus(); - data.floaterLevel1 = (U32)getLevelStatus( FLOATER_1 ); - data.floaterLevel2 = (U32)getLevelStatus( FLOATER_2 ); - data.BiCarbLevel = (U32)getLevelStatus( BICARB_LEVEL ); - data.SpentChamberLevel = (U32)getLevelStatus( SPENT_DIALYSATE_LEVEL ); - data.hydNegativePressure = getFilteredPressure( PRESSURE_SENSOR_HYDRAULICS_OUTLET ); - data.hydPositivePressure = getFilteredPressure( PRESSURE_SENSOR_FRESH_DIALYSATE ); - data.spentDialysatePressure = getFilteredPressure( PRESSURE_SENSOR_SPENT_DIALYSATE ); + data.d6Level = (U32)getLevelStatus( D6_LEVL ); + data.d63Level = (U32)getLevelStatus( D63_LEVL ); + data.d46Level = (U32)getLevelStatus( D46_LEVL ); + data.d9Pressure = getFilteredPressure( D9_PRES ); + data.d18Pressure = getFilteredPressure( D18_PRES ); + data.d51Pressure = getFilteredPressure( D51_PRES ); data.isDialysateGoodtoDeliver = (BOOL)getDialGoodToDeliverStatus(); broadcastData( MSG_ID_DD_GEN_DIALYSATE_MODE_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( GEN_DIALYSATE_MODE_DATA_T ) ); @@ -731,10 +774,11 @@ * value of the hydraulics chamber fluid temperature. * @return TRUE if override successful, FALSE if not *************************************************************************/ -//BOOL testGenDHydChamberFluidTempOverride( MESSAGE_T *message ) -//{ -// BOOL result = f32Override( message, &targetHydChamberFluidTemp ); -// -// return result; -//} +BOOL testGenDHydChamberFluidTempOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &targetHydChamberFluidTemp ); + + return result; +} + /**@}*/