Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r6a2571e938b59eaadaa285faa53f1d190adc7d08 -r6dc66bf55bec62b9dcbbde0ed283fe1fdb374f92 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 6a2571e938b59eaadaa285faa53f1d190adc7d08) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 6dc66bf55bec62b9dcbbde0ed283fe1fdb374f92) @@ -79,6 +79,8 @@ #define VENOUS_PRESSURE_OCCL_OFFSET_MMHG ( 50.0F ) ///< Venous pressure occlusion threshold offset from max alarm limit (in mmHg). #define VENOUS_PRES_AT_FILL_DELAY_MAX_BLOOD_VOL_ML ( 41.667F ) ///< Venous pressure low exemption delay after air trap fill maximum blood volume (in mL). +#define MIN_BLOOD_FLOW_FOR_VENOUS_PRES ( 0.90*MIN_SET_BLOOD_FLOW_RATE ) ///< Minimum blood flow to establish venous pressure in a good range. + /// Venous pressure low exemption period (in task intervals) conversion factor (from Qb in mL/min) following an air trap fill. static const U32 VENOUS_PRES_AT_FILL_DELAY_FACTOR = (U32)( VENOUS_PRES_AT_FILL_DELAY_MAX_BLOOD_VOL_ML * (F32)SEC_PER_MIN * ( (F32)MS_PER_SECOND / (F32)TASK_GENERAL_INTERVAL ) ); @@ -589,7 +591,7 @@ break; case PRESSURE_LIMITS_STATE_IDLE: - if ( TRUE == bpRunning ) + if ( ( TRUE == bpRunning ) && ( getMeasuredBloodFlowRate( ) > MIN_BLOOD_FLOW_FOR_VENOUS_PRES ) ) { currPresLimitsState = PRESSURE_LIMITS_STATE_WIDE; }