Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r88083999c2b4ef605de99209a6873421c7428952 -r71370c9aead6b97b6e70cd3780cd6b1f39b1ec1d --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 88083999c2b4ef605de99209a6873421c7428952) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 71370c9aead6b97b6e70cd3780cd6b1f39b1ec1d) @@ -97,7 +97,7 @@ #define PRES_ALARM_PERSISTENCE ( 1 * MS_PER_SECOND ) ///< Alarm persistence period for pressure alarms. #define VEN_OCCL_ALARM_PERSISTENCE 100 ///< Alarm persistence period for venous occlusion alarm. -#define AIR_PUMP_TOLERANCE_TIMEOUT_MS (1 * MS_PER_SECOND ) +#define AIR_PUMP_TOLERANCE_TIMEOUT_MS (1 * MS_PER_SECOND ) ///< Time to allow increased maximum venous high limit /// Measured arterial pressure is filtered w/ 10 second moving average for pressure compensation of flow. #define SIZE_OF_LONG_ART_ROLLING_AVG ( ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) * 10 ) @@ -144,9 +144,9 @@ static F32 longFilteredArterialPressure; ///< Measured arterial pressure after long (10 s) filter. static F32 shortFilteredArterialPressure; ///< Measured arterial pressure after short (1 s) filter. static F32 shortFilteredVenousPressure; ///< Measured venous pressure after short (1 s) filter. -static BOOL airPumpOpenToleranceFlag; -static U32 airPumpOpenToleranceTimer; +static U32 airPumpOpenToleranceTimer; ///< Timer for increased maximum venous high limit. + static U32 bloodPumpOcclusionAfterCartridgeInstall; ///< Measured blood pump occlusion reading taken after cartridge install. static U32 emptySalineBagCtr = 0; ///< Timer counter for empty bag detection. @@ -225,7 +225,6 @@ presOcclDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; presOcclState = PRESSURE_WAIT_FOR_POST_STATE; presOcclPostState = PRESSURE_SELF_TEST_STATE_START; - airPumpOpenToleranceFlag = FALSE; airPumpOpenToleranceTimer = 0; #ifndef _RELEASE_ @@ -570,30 +569,32 @@ venHighLimit = (F32)getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); } - if ( AIR_PUMP_STATE_ON == getAirPumpState() ) +#ifndef _RELEASE_ + if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) +#endif { - venHighLimit = (F32)getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ) + VENOUS_OFFSET_WITH_AIRPUMP_MMHG; - airPumpOpenToleranceFlag = TRUE; - airPumpOpenToleranceTimer = getMSTimerCount(); - } - //air pump is off. - else - { - //air pump was previously on. - if ( TRUE == airPumpOpenToleranceFlag ) + + if ( AIR_PUMP_STATE_ON == getAirPumpState() ) { venHighLimit = (F32)getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ) + VENOUS_OFFSET_WITH_AIRPUMP_MMHG; + airPumpOpenToleranceTimer = getMSTimerCount(); + } - // have we been off for at least 1s? Then reset timer, flag, and parameter. - if ( TRUE == didTimeout( airPumpOpenToleranceTimer, AIR_PUMP_TOLERANCE_TIMEOUT_MS ) ) + else // air pump is off. + { + + if ( airPumpOpenToleranceTimer > 0 ) { - airPumpOpenToleranceFlag = FALSE; - venHighLimit = (F32)getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); + venHighLimit = (F32)getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ) + VENOUS_OFFSET_WITH_AIRPUMP_MMHG; + if ( TRUE == didTimeout( airPumpOpenToleranceTimer, AIR_PUMP_TOLERANCE_TIMEOUT_MS ) ) + { + venHighLimit = (F32)getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); + airPumpOpenToleranceTimer = 0; + } } - } - // we start the timer. + } } // Cannot monitor for low venous pressure while venting air trap