Index: firmware/App/Modes/BloodPrime.c =================================================================== diff -u -r736cc5b56cc9c784ab1d8fc8687a73d190c35759 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision 736cc5b56cc9c784ab1d8fc8687a73d190c35759) +++ firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -39,7 +39,7 @@ #define MIN_RAMP_TIME_SEC 60 ///< Minimum ramp time for blood prime (in seconds). /// Initial flow rate for blood pump when starting blood prime operation. -#define BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN 100 +#define BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN 250 /// Interval at which blood prime ramping is controlled. static const U32 BLOOD_PRIME_RAMPING_INTERVAL = ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); @@ -85,6 +85,8 @@ void initBloodPrime( void ) { U32 setBPRate = getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ); + F32 rampRateSpan = 0.0F; + F32 estRampSeconds = 0.0F; bloodPrimeState = BLOOD_PRIME_RAMP_STATE; bloodPrimeRampControlTimerCtr = 0; @@ -94,22 +96,16 @@ bloodPrimeTargetVolume_mL = (F32)TUBING_BLOOD_PRIME_VOLUME_ML + (F32)getDialyzerBloodVolume(); bloodPrimeRampFlowRate_mL_min = (F32)BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN; + // Calculate BP ramp step size - if ( setBPRate <= BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ) + rampRateSpan = (F32)( setBPRate - BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ); + estRampSeconds = ( ( bloodPrimeTargetVolume_mL / (F32)setBPRate + bloodPrimeTargetVolume_mL / (F32)BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ) / 2.0 ) * (F32)SEC_PER_MIN; + + if ( estRampSeconds < (F32)MIN_RAMP_TIME_SEC ) { - bloodPrimeRampStep_mL = 0.0; + estRampSeconds = (F32)MIN_RAMP_TIME_SEC; } - else - { - F32 rampRateSpan = (F32)( setBPRate - BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ); - F32 estRampSeconds = ( ( bloodPrimeTargetVolume_mL / (F32)setBPRate + bloodPrimeTargetVolume_mL / (F32)BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ) / 2.0 ) * (F32)SEC_PER_MIN; - - if ( estRampSeconds < (F32)MIN_RAMP_TIME_SEC ) - { - estRampSeconds = (F32)MIN_RAMP_TIME_SEC; - } - bloodPrimeRampStep_mL = rampRateSpan / estRampSeconds; - } + bloodPrimeRampStep_mL = rampRateSpan / estRampSeconds; } /*********************************************************************//**