Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -ra4436011a3f30a7b20474c3ddb4d4373ac4b87b6 -r43d1739837a207e6d4d2960f3f0442af85b22a8c --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision a4436011a3f30a7b20474c3ddb4d4373ac4b87b6) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 43d1739837a207e6d4d2960f3f0442af85b22a8c) @@ -30,8 +30,6 @@ #define RESERVOIR_DEPLETION_INTERVAL ( MAX_RESERVOIR_DEPLETION_TIME_MS / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) for maximum allowed depletion time. #define DIALYSATE_FLOW_RATE_350_ML_PER_MIN 0.35F ///< Dialysate flow rate 350 mL/min. -#define DIALYSATE_FLOW_RATE_400_ML_PER_MIN 0.4F ///< Dialysate flow rate 400 mL/min. -#define DIALYSATE_FLOW_RATE_500_ML_PER_MIN 0.5F ///< Dialysate flow rate 500 mL/min. #define DIALYSATE_FLOW_RATE_550_ML_PER_MIN 0.55F ///< Dialysate flow rate 550 mL/min. #define TGT_FILL_FLOW_FOR_DIA_FLOW_100_TO_350_ML_PER_MIN 0.5F ///< Target fill flow rate for dialysate flow rates in between 100 to 350 mL/min. #define TGT_FILL_FLOW_FOR_DIA_FLOW_550_TO_600_ML_PER_MIN 0.8F ///< Target fill flow rate for dialysate flow rates in between 500 to 600 mL/min. @@ -297,16 +295,16 @@ { fillFlowRate = TGT_FILL_FLOW_FOR_DIA_FLOW_100_TO_350_ML_PER_MIN; } - else if ( ( dialysateFlow >= DIALYSATE_FLOW_RATE_400_ML_PER_MIN ) && ( dialysateFlow <= DIALYSATE_FLOW_RATE_500_ML_PER_MIN ) ) + else if ( dialysateFlow >= DIALYSATE_FLOW_RATE_550_ML_PER_MIN ) { + fillFlowRate = TGT_FILL_FLOW_FOR_DIA_FLOW_550_TO_600_ML_PER_MIN; + } + else + { // fill flow = 10 x dialysate_flow ^ 2 - 7.5 x dialysate_flow + 2.0 fillFlowRate = pow( dialysateFlow, 2 ) * DIA_FLOW_TO_FILL_FLOW_SECOND_ORDER_COEFF - dialysateFlow * DIA_FLOW_TO_FILL_FLOW_FIRST_ORDER_COEFF + DIA_FLOW_TO_FILL_FLOW_CONSTANT; } - else if ( dialysateFlow >= DIALYSATE_FLOW_RATE_550_ML_PER_MIN ) - { - fillFlowRate = TGT_FILL_FLOW_FOR_DIA_FLOW_550_TO_600_ML_PER_MIN; - } targetFillFlowLPM = fillFlowRate;