Index: firmware/App/Modes/StateTxBloodPrime.c =================================================================== diff -u -r1abc0349c736a70fb56db6895947abfbba0eee22 -r6b9b882169f108f9a5072dc60cdabbc1687aafcc --- firmware/App/Modes/StateTxBloodPrime.c (.../StateTxBloodPrime.c) (revision 1abc0349c736a70fb56db6895947abfbba0eee22) +++ firmware/App/Modes/StateTxBloodPrime.c (.../StateTxBloodPrime.c) (revision 6b9b882169f108f9a5072dc60cdabbc1687aafcc) @@ -71,7 +71,6 @@ static BOOL pendingResumeRequest; ///< Flag indicating UI has requested blood prime resume. static BOOL pendingFlowChangeRequest; ///< Flag indicating UI has requested blood prime flow change static BOOL fluidBolusRequested; ///< Flag indicating fluid bolus has been requested by user. -static BOOL bolusStarted; ///< Flag indicating fluid bolus start signal has been sent. static F32 bloodPrimeRampFlowRate_mL_min; ///< Current blood pump ramp flow rate. static F32 bloodPrimeRampStep_mL; ///< Blood pump volume step size for ramping. @@ -136,7 +135,6 @@ bloodPrimeStartMS = 0; fluidBolusRequested = FALSE; - bolusStarted = FALSE; } /*********************************************************************//** @@ -197,7 +195,6 @@ pendingResumeRequest = FALSE; pendingFlowChangeRequest = FALSE; fluidBolusRequested = FALSE; - bolusStarted = FALSE; } /*********************************************************************//** @@ -316,6 +313,8 @@ fluidBolusRequested = FALSE; bloodPrimeResumeState = bloodPrimeState; lastBloodPrimeFlowRate_mL_min = getTargetBloodFlowRate(); + // Start bolus and transition to bolus state + signalStartFluidBolus( lastBloodPrimeFlowRate_mL_min ); result = BLOOD_PRIME_FLUID_BOLUS_STATE; } else @@ -379,6 +378,8 @@ fluidBolusRequested = FALSE; bloodPrimeResumeState = bloodPrimeState; lastBloodPrimeFlowRate_mL_min = getTargetBloodFlowRate(); + // Start bolus and transition to bolus state + signalStartFluidBolus( lastBloodPrimeFlowRate_mL_min ); result = BLOOD_PRIME_FLUID_BOLUS_STATE; } else @@ -428,18 +429,12 @@ { BLOOD_PRIME_STATE_T result = BLOOD_PRIME_FLUID_BOLUS_STATE; - // Start fluid bolus if not started - if ( FALSE == bolusStarted ) - { - bolusStarted = signalStartFluidBolus( lastBloodPrimeFlowRate_mL_min ); - } // Restore actuators and return to pre-bolus sub-state upon bolus complete or abort - else if ( FALSE == isFluidBolusActive() ) + if ( FALSE == isFluidBolusActive() ) { setValvePosition( H1_VALV, VALVE_POSITION_B_OPEN ); setValvePosition( H19_VALV, VALVE_POSITION_B_OPEN ); setBloodPumpTargetFlowRate( lastBloodPrimeFlowRate_mL_min, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - bolusStarted = FALSE; result = bloodPrimeResumeState; }