Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -rfba69244d94307e50fefaa1e88bcbb979584461e -r8c8ac9430cbd0a836b51d16a02457575861c5990 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision fba69244d94307e50fefaa1e88bcbb979584461e) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 8c8ac9430cbd0a836b51d16a02457575861c5990) @@ -79,7 +79,6 @@ #define VENOUS_PRESSURE_MAX_MMHG ( 2000.0F ) ///< Maximum venous pressure reading (in mmHg) for range check. #define VENOUS_PRESSURE_MIN_MMHG ( -1500.0F ) ///< Minimum venous pressure reading (in mmHg) for range check. #define VENOUS_PRESSURE_LIMIT_MAX_MMHG ( 400.0F ) ///< Maximum venous pressure limit (in mmHg). -#define VENOUS_PRESSURE_LIMIT_MIN_MMHG ( 0.0F ) ///< Minimum venous pressure limit (in mmHg). #define VENOUS_PRESSURE_OCCL_OFFSET_MMHG ( 50.0F ) ///< Venous pressure occlusion threshold offset from max alarm limit (in mmHg). #define VENOUS_PRESSURE_EXEMPTION_PERIOD ( ( 2 * MS_PER_SECOND ) / \ TASK_GENERAL_INTERVAL ) ///< Venous pressure low exemption period (in task interval) after fill for all blood flow rate @@ -443,7 +442,7 @@ currentArterialMaxLimit = (S32)ARTERIAL_PRESSURE_LIMIT_MAX_MMHG; currentArterialMinLimit = (S32)ARTERIAL_PRESSURE_LIMIT_MIN_MMHG; currentVenousMaxLimit = (S32)VENOUS_PRESSURE_LIMIT_MAX_MMHG; - currentVenousMinLimit = (S32)VENOUS_PRESSURE_LIMIT_MIN_MMHG; + currentVenousMinLimit = (S32)getMinVenousPressureWideValueMMHG(); } /*********************************************************************//** @@ -539,16 +538,17 @@ ( PRESSURE_LIMITS_STATE_STABILIZATION_2 == currPresLimitsState ) ) { // apply pressure windows when stable - S32 artOffset = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ) / 2; // Arterial is symmetric - S32 venMinOffset = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ); // Venous is asymmetric - S32 venMaxOffset = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ) - venMinOffset; + S32 artOffset = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ) / 2; // Arterial is symmetric + S32 venMinOffset = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ); // Venous is asymmetric + S32 venMaxOffset = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ) - venMinOffset; + U32 venMinWideLimitMMHG = getMinVenousPressureWideValueMMHG(); currentArterialMinLimit = stableArterialPressure - artOffset; currentArterialMinLimit = MAX( currentArterialMinLimit, ARTERIAL_PRESSURE_LIMIT_MIN_MMHG ); currentArterialMaxLimit = stableArterialPressure + artOffset; currentArterialMaxLimit = MIN( currentArterialMaxLimit, ARTERIAL_PRESSURE_LIMIT_MAX_MMHG ); currentVenousMinLimit = stableVenousPressure - venMinOffset; - currentVenousMinLimit = MAX( currentVenousMinLimit, VENOUS_PRESSURE_LIMIT_MIN_MMHG ); + currentVenousMinLimit = MAX( currentVenousMinLimit, venMinWideLimitMMHG ); currentVenousMaxLimit = stableVenousPressure + venMaxOffset; currentVenousMaxLimit = MIN( currentVenousMaxLimit, VENOUS_PRESSURE_LIMIT_MAX_MMHG ); }