Index: firmware/App/Modes/BloodPrime.c =================================================================== diff -u -rf3d625e2593ced120c4a98b9ed7e28b132445642 -r931ca8779b64aa8bb68aa26d1f631d040a753007 --- firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision f3d625e2593ced120c4a98b9ed7e28b132445642) +++ firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision 931ca8779b64aa8bb68aa26d1f631d040a753007) @@ -128,21 +128,35 @@ setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); setValvePosition( VBA, VALVE_POSITION_B_OPEN ); - setValvePosition( VBV, VALVE_POSITION_B_OPEN ); // Ensure dialysate outlet and Heparin pumps are stopped signalDialOutPumpHardStop(); stopSyringePump(); // start blood and dialysate inlet pumps - setBloodPumpTargetFlowRate( (U32)bloodPrimeRampFlowRate_mL_min, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( DIALYSATE_FLOW_RATE_FOR_RECIRC, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); cmdStartDGTrimmerHeater(); setCurrentSubState( (U32)bloodPrimeState ); // Start air trap control startAirTrapControl(); + // make sure air trap fill is handled right + if ( TRUE == isAirTrapFillInProgress() ) + { + // set BP to air trap fill rate if air trap fill has been initiated + setBloodPumpTargetFlowRate( AIR_TRAP_FILL_BLOOD_FLOW_RATE, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + // close VBV for fill + setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); + } + else + { + // Start blood pump at prescribed flow rate + setBloodPumpTargetFlowRate( (U32)bloodPrimeRampFlowRate_mL_min, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + // re-open VBV for blood recirculation + setValvePosition( VBV, VALVE_POSITION_B_OPEN ); + } + // Set user alarm recovery actions allowed in this sub-mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, TRUE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, TRUE ); @@ -233,7 +247,7 @@ if ( ( airTrapFillInProgress != TRUE ) && ( TRUE == isAirTrapFillInProgress() ) ) { // set BP to air trap fill rate if air trap fill has been initiated - setBloodPumpTargetFlowRate( AIR_TRAP_FILL_BLOOD_FLOW_RATE, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); + setBloodPumpTargetFlowRate( AIR_TRAP_FILL_BLOOD_FLOW_RATE, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); // close VBV for fill setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); }