Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r818d96fff963c707f5e2cb5aae7bf16f23e4b08a -rf46b7a1f9bbfa15ab3f9b6a0fe6873f393f10248 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 818d96fff963c707f5e2cb5aae7bf16f23e4b08a) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision f46b7a1f9bbfa15ab3f9b6a0fe6873f393f10248) @@ -717,37 +717,43 @@ #endif { // Range check occlusion sensor + if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE, outOfRange ) ) { SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE, bpOccl ); } // Check for occlusion in PreTreatment modes when the cartridge is installed // and setOcclusionInstallLevel has been called. + if( MODE_PRET == getCurrentOperationMode() ) { if( getPreTreatmentSubState() > HD_PRE_TREATMENT_CART_INSTALL_STATE && getDrySelfTestsState() > DRY_SELF_TESTS_START_STATE ) { - // Check for occlusion + // Check for occlusion + if ( bpOccl > ( OCCLUSION_THRESHOLD_OFFSET + bloodPumpOcclusionAfterCartridgeInstall ) ) { + signalBloodPumpHardStop(); // Stop pump immediately SET_ALARM_WITH_1_U32_DATA( ALARM_ID_OCCLUSION_BLOOD_PUMP, bpOccl ) } } } - // Check for occlusion in PreTreatment modes where pumps are moving + // Check for occlusion in Treatment modes where pumps are moving else if( MODE_TREA == getCurrentOperationMode() ) { if( TREATMENT_STOP_STATE != getTreatmentState()) { // Check for occlusion + if ( bpOccl > ( OCCLUSION_THRESHOLD_OFFSET + bloodPumpOcclusionAfterCartridgeInstall ) ) { + signalBloodPumpHardStop(); // Stop pump immediately SET_ALARM_WITH_1_U32_DATA( ALARM_ID_OCCLUSION_BLOOD_PUMP, bpOccl ) }