Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -rc25d707f6f5f2463639425e2efd6876bed974304 -rb71aca78afda3d5a827530a767935eb4a7de976a --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision c25d707f6f5f2463639425e2efd6876bed974304) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision b71aca78afda3d5a827530a767935eb4a7de976a) @@ -107,13 +107,14 @@ #define DIP_PWM_ZERO_OFFSET 0.1F ///< 10% PWM duty cycle = zero speed. /// Macro converts flow rate to estimate PWM needed to achieve it. -#define DIP_PWM_FROM_ML_PER_MIN(rate) ( (rate) * DIP_ML_PER_MIN_TO_PUMP_RPM_FACTOR * DIP_GEAR_RATIO * DIP_MOTOR_RPM_TO_PWM_DC_FACTOR + DIP_PWM_ZERO_OFFSET ) +#define DIP_PWM_FROM_ML_PER_MIN(rate) ( (rate) * DIP_ML_PER_MIN_TO_PUMP_RPM_FACTOR * DIP_GEAR_RATIO * DIP_MOTOR_RPM_TO_PWM_DC_FACTOR + DIP_PWM_ZERO_OFFSET /// Conversion from PWM duty cycle % to commanded pump motor speed. PWM range is 10% to 90%. RPM range is 0 to 3200. 3200 / 0.8 = 4000. #define DIP_PWM_TO_MOTOR_SPEED_RPM(pwm) ( ((pwm) - DIP_PWM_ZERO_OFFSET) * 4000.0F ) /// Conversion from pump motor speed to PWM duty cycle. #define DIP_MOTOR_SPEED_RPM_TO_PWM(rpm) ( ( rpm / 4000.0F ) + 0.1 ) // Macro converts PWM to estimate flow rate needed to achieve it. -#define DIP_ML_PER_MIN_FROM_PWM(pwm) ( (( pwm - DIP_PWM_ZERO_OFFSET) * 684.73F ) + 49.121F ) +//#define DIP_ML_PER_MIN_FROM_PWM(pwm) ( (( pwm - DIP_PWM_ZERO_OFFSET) * 684.73F ) + 49.121F ) +#define DIP_ML_PER_MIN_FROM_PWM(pwm) ( (pwm) - DIP_PWM_ZERO_OFFSET ) / DIP_ML_PER_MIN_TO_PUMP_RPM_FACTOR / DIP_GEAR_RATIO / DIP_MOTOR_RPM_TO_PWM_DC_FACTOR /// Measured dialIn flow is filtered w/ moving average. @@ -138,6 +139,7 @@ #define DIAL_IN_MAX_ROTOR_COUNT_FOR_WEAR 25000 ///< Maximum rotor count for determining wear of the cartridge (negligible affect beyond this threshold). #define DIAL_IN_STROKE_VOLUME 3.405 ///< Stroke volume (SV) used for Flow Estimation ALgorithm #define DIAL_IN_GEAR_RATIO 32 ///< Gear ratio used for Flow Estimation ALgorithm +#define FIFTY_PERCENT 0.5 ///< 50% constant /// Enumeration of dialysate inlet pump states. typedef enum DialInPump_States @@ -817,7 +819,7 @@ } // Check the measured flow against estimated flow - / - deltaFlow = 0.5 * estimatedFlow; // 50% estimated flow + deltaFlow = FIFTY_PERCENT * estimatedFlow; // 50% estimated flow if ( ( TRUE == isDialInPumpRunning() ) && ( dialInPumpControlMode != PUMP_CONTROL_MODE_OPEN_LOOP ) ) { if ( ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_DIAL_IN_FLOW_CHECK_FAILURE, deltaFlow < fabs( estimatedFlow - filteredDialInFlowMeterReading ) ) ) ) @@ -875,7 +877,7 @@ else #endif { - dialysateInPumpRotorCounter.data = 0; + dialysateInPumpRotorCounter.data = 0.0F; } }