Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r840441c0cf903c161ce0a40d7e3933591ef69e25 -r70c1c1e3d39d9653c1e5ea0eaf6447cf812d24df --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 840441c0cf903c161ce0a40d7e3933591ef69e25) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 70c1c1e3d39d9653c1e5ea0eaf6447cf812d24df) @@ -391,6 +391,7 @@ } setValveAirTrap( STATE_OPEN ); + setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); fillStartTime = getMSTimerCount(); SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_AIR_TRAP_FILL, STATE_OPEN, 0 ); result = AIR_TRAP_VALVE_OPEN_STATE; @@ -429,6 +430,7 @@ } setValveAirTrap( STATE_OPEN ); + setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); fillStartTime = getMSTimerCount(); SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_AIR_TRAP_FILL, STATE_OPEN, 0 ); result = AIR_TRAP_VALVE_OPEN_STATE; @@ -459,6 +461,12 @@ else if ( AIR_TRAP_LEVEL_FLUID == getRawAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) { setValveAirTrap( STATE_CLOSED ); + + if ( TRUE == isBloodPumpRunning() ) + { + setValvePosition( VBV, VALVE_POSITION_B_OPEN ); + } + airPumpOnDelayStartTime = u32DiffWithWrap( AIR_PUMP_ON_DELAY_ADJUST_AFTER_FILL, getMSTimerCount() ); signalLowVenousPressureCheck(); SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_AIR_TRAP_FILL, STATE_CLOSED, 0 );