Index: firmware/App/Monitors/Pressures.c =================================================================== diff -u -re0d2ac9688850fd3ac560775391e2ca8198087d3 -r5746707154938e8decd5b67a0bac15220e1cbcf6 --- firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision e0d2ac9688850fd3ac560775391e2ca8198087d3) +++ firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision 5746707154938e8decd5b67a0bac15220e1cbcf6) @@ -7,8 +7,8 @@ * * @file Pressures.c * -* @author (last) Varshini Nagabooshanam -* @date (last) 06-Apr-2026 +* @author (last) Vijay Pamula +* @date (last) 26-Jun-2026 * * @author (original) Sean Nash * @date (original) 24-Sep-2024 @@ -72,7 +72,7 @@ #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 ( 20.0F ) ///< Minimum venous pressure limit (in mmHg). +#define VENOUS_PRESSURE_LIMIT_MIN_MMHG ( 10.0F ) ///< Minimum venous pressure 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 @@ -431,7 +431,7 @@ } // Using final TMP value for override. - filtTmp = getTMPPressure(); + filtTmp = getLongFilteredTMPPressure(); curArtPres = FLOAT_TO_INT_WITH_ROUND( filtArt ); curVenPres = FLOAT_TO_INT_WITH_ROUND( filtVen ); @@ -488,18 +488,18 @@ * limits based on whether we are in stabilization or stable situation. * @details \b Inputs: currPresLimitsState * @details \b Outputs: currentArterialMaxLimit, currentArterialMinLimit, - * currentVenousMaxLimit, currentVenousMinLimit + * currentVenousMaxLimit, currentVenousMinLimit, currentTmpMinLimit, currentTmpMaxLimit * @return none *************************************************************************/ static void determineArtVenPressureLimits( void ) { if ( PRESSURE_LIMITS_STATE_STABLE == currPresLimitsState ) { // apply pressure windows when stable - S32 artOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ) / 2; - S32 venMinOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ); - S32 venMaxOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ) - venMinOffset; - S32 tmpOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW ) / 2; + S32 artOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ); + S32 venMinOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_HIGH_LIMIT_WINDOW ); + S32 venMaxOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_VEN_PRES_LOW_LIMIT_WINDOW ); + S32 tmpOffset = (S32)getSysConfigTreatmentParameterU32( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW ); currentArterialMinLimit = stableArterialPressure - artOffset; currentArterialMinLimit = MAX( currentArterialMinLimit, ARTERIAL_PRESSURE_LIMIT_MIN_MMHG ); @@ -509,7 +509,9 @@ currentVenousMinLimit = MAX( currentVenousMinLimit, VENOUS_PRESSURE_LIMIT_MIN_MMHG ); currentVenousMaxLimit = stableVenousPressure + venMaxOffset; currentVenousMaxLimit = MIN( currentVenousMaxLimit, VENOUS_PRESSURE_LIMIT_MAX_MMHG ); + currentTmpMinLimit = stableTmpPressure - tmpOffset; currentTmpMinLimit = MAX( currentTmpMinLimit, TMP_PRESSURE_LIMIT_MIN_MMHG ); + currentTmpMaxLimit = stableTmpPressure + tmpOffset; currentTmpMaxLimit = MIN( currentTmpMaxLimit, TMP_PRESSURE_LIMIT_MAX_MMHG ); } else @@ -608,7 +610,7 @@ #ifndef TEST_NO_PRESSURE_CHECKS checkArterialPressureInRange(); checkVenousPressureInRange(); - checkTMPPressureInRange(); + checkTmpPressureInRange(); #endif return result; @@ -628,7 +630,7 @@ BOOL bpRampComplete = TRUE; //isBloodPumpRampComplete(); TD_OP_MODE_T currMode = getCurrentOperationMode(); TREATMENT_STATE_T currTxState = TREATMENT_DIALYSIS_STATE; //getTreatmentState(); - U32 stabilizeTime = PRES_LIMIT_STABILIZATION_TIME_MS; + U32 stabilizeTime = PRES_LIMIT_STABILIZATION_TIME_MS; if ( currMode != MODE_TREA ) { @@ -709,9 +711,9 @@ } else if ( TRUE == didTimeout( stabilizationStartTimeMs, PRES_LIMIT_RESTABILIZE_TIME_MS ) ) { - stabilizationStartTimeMs = getMSTimerCount(); - pressureStabilizeTime = STABILIZATION_PERIOD_OFF; - currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION; + stabilizationStartTimeMs = getMSTimerCount(); + pressureStabilizeTime = STABILIZATION_PERIOD_OFF; + currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION; } break;