Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r38974e7129adace42bc44cacbf384a0b1442046c -reeb4e9c7c8ca2bc41168353c3d30f311080972b2 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 38974e7129adace42bc44cacbf384a0b1442046c) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision eeb4e9c7c8ca2bc41168353c3d30f311080972b2) @@ -17,6 +17,7 @@ #include // for memcpy() +#include "Heaters.h" #include "LoadCell.h" #include "MessageSupport.h" #include "ModeDrain.h" @@ -527,7 +528,7 @@ * @details Outputs: none * @return target fill flow rate in L/min *************************************************************************/ -F32 getTargetFillFlowRateLPM( void ) +F32 getTargetFillFlowRateLPM( void ) { return targetFillFlowRateLPM; } @@ -614,24 +615,27 @@ if ( FALSE == isThisTheFirstFill() ) { - F32 tempReservoirUse = heatersTempCalc.tempTargetTrimmer + RESERVOIR_EXTRA_TEMPERATURE; + F32 tempTargetNumerator; + F32 targetTempDenominator; + F32 tempReservoirUse; + + tempReservoirUse = heatersTempCalc.tempTargetTrimmer + RESERVOIR_EXTRA_TEMPERATURE; heatersTempCalc.tempReservoirEndFill = tempReservoirUse - ( heatersTempCalc.timeReservoirFill2SwitchMS * RESERVOIR_TAU_C_PER_MS ); heatersTempCalc.tempReservoir0 = heatersTempCalc.tempReservoirEndFill - ( ( heatersTempCalc.timeReservoirFillMS * 0.5 ) * RESERVOIR_TAU_C_PER_MS ); heatersTempCalc.timeUFDecayMS = (F32)heatersTempCalc.timeReservoirCycleMS - heatersTempCalc.timeReservoirFillMS; UFTimeConstant = heatersTempCalc.timeUFDecayMS * ULTRAFILTER_TAU_C_PER_MS; heatersTempCalc.tempUFFill = tempLastFill + UFTimeConstant; - F32 tempTargetNumerator = heatersTempCalc.tempReservoir0 - ( ( ULTRAFILTER_VOLUME_ML / targetFillVolML ) * heatersTempCalc.tempUFFill ); - F32 targetTempDenominator = ( ( targetFillVolML - ULTRAFILTER_VOLUME_ML ) / targetFillVolML ); + tempTargetNumerator = heatersTempCalc.tempReservoir0 - ( ( ULTRAFILTER_VOLUME_ML / targetFillVolML ) * heatersTempCalc.tempUFFill ); + targetTempDenominator = ( ( targetFillVolML - ULTRAFILTER_VOLUME_ML ) / targetFillVolML ); tempTarget = tempTargetNumerator / targetTempDenominator; } else { tempTarget = heatersTempCalc.tempTargetTrimmer + RESERVOIR_EXTRA_TEMPERATURE; } - return tempTarget; }