Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -ra25c11a9beb66c7292a184e3bc02a1a5ded5ed8a -red89b19b0b1fbab494fee7a762efae059f32b274 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision a25c11a9beb66c7292a184e3bc02a1a5ded5ed8a) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision ed89b19b0b1fbab494fee7a762efae059f32b274) @@ -183,11 +183,7 @@ lastVenousPressureReadCtr = 0; #ifndef DISABLE_PRESSURE_CHECKS lastBPOcclReadCtr = 0; - lastDPiOcclReadCtr = 0; - lastDPoOcclReadCtr = 0; lastBPErrorCtr = 0; - lastDPIErrorCtr = 0; - lastDPOErrorCtr = 0; #endif longFilteredArterialPressure = 0.0; @@ -196,8 +192,6 @@ #ifndef DISABLE_PRESSURE_CHECKS bloodPumpOcclusionAfterCartridgeInstall = 0; - dialInPumpOcclusionAfterCartridgeInstall = 0; - dialOutPumpOcclusionAfterCartridgeInstall = 0; #endif } @@ -474,7 +468,7 @@ } // Check arterial pressure during treatment mode - if ( MODE_TREA == getCurrentOperationMode() ) + if ( ( MODE_TREA == getCurrentOperationMode() ) && ( getTreatmentState() <= TREATMENT_DIALYSIS_STATE ) ) { F32 artLowLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT ); F32 artHighLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT ); @@ -485,21 +479,16 @@ SET_ALARM_WITH_2_F32_DATA( ALARM_ID_ARTERIAL_PRESSURE_LOW, artPres, artLowLimit ); } - if ( TRUE == isPersistentAlarmConditionCleared( ALARM_ID_ARTERIAL_PRESSURE_LOW, artPres < artLowLimit ) ) - { - clearAlarmCondition( ALARM_ID_ARTERIAL_PRESSURE_LOW ); - } - if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_ARTERIAL_PRESSURE_HIGH, artPres > artHighLimit ) ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_ARTERIAL_PRESSURE_HIGH, artPres, artHighLimit ); } - - if ( TRUE == isPersistentAlarmConditionCleared( ALARM_ID_ARTERIAL_PRESSURE_HIGH, artPres > artHighLimit ) ) - { - clearAlarmCondition( ALARM_ID_ARTERIAL_PRESSURE_HIGH ); - } } + else + { // Reset persistence if alarm is out of scope + isPersistentAlarmTriggered( ALARM_ID_ARTERIAL_PRESSURE_LOW, FALSE ); + isPersistentAlarmTriggered( ALARM_ID_ARTERIAL_PRESSURE_HIGH, FALSE ); + } #endif } @@ -524,7 +513,7 @@ } // Check arterial pressure during treatment mode - if ( MODE_TREA == getCurrentOperationMode() ) + if ( ( MODE_TREA == getCurrentOperationMode() ) && ( getTreatmentState() <= TREATMENT_DIALYSIS_STATE ) ) { F32 venLowLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT ); F32 venHighLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); @@ -542,21 +531,16 @@ isPersistentAlarmTriggered( ALARM_ID_VENOUS_PRESSURE_LOW, FALSE ); } - if ( TRUE == isPersistentAlarmConditionCleared( ALARM_ID_VENOUS_PRESSURE_LOW, venPres < venLowLimit ) ) - { - clearAlarmCondition( ALARM_ID_VENOUS_PRESSURE_LOW ); - } - if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_VENOUS_PRESSURE_HIGH, venPres > venHighLimit ) ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_VENOUS_PRESSURE_HIGH, venPres, venHighLimit ); } - - if ( TRUE == isPersistentAlarmConditionCleared( ALARM_ID_VENOUS_PRESSURE_HIGH, venPres > venHighLimit ) ) - { - clearAlarmCondition( ALARM_ID_VENOUS_PRESSURE_HIGH ); - } } + else + { // Reset persistence if alarm is out of scope + isPersistentAlarmTriggered( ALARM_ID_VENOUS_PRESSURE_LOW, FALSE ); + isPersistentAlarmTriggered( ALARM_ID_VENOUS_PRESSURE_HIGH, FALSE ); + } #endif }