Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -rc1b9ac0dbf2196280895d2e440dd7ac288ac8424 -r60b6eccce34be08891b83299ca12936534d56361 --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision c1b9ac0dbf2196280895d2e440dd7ac288ac8424) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 60b6eccce34be08891b83299ca12936534d56361) @@ -21,6 +21,7 @@ #include "FPGA.h" #include "ModeTreatmentParams.h" #include "OperationModes.h" +#include "Switches.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "TaskPriority.h" @@ -184,12 +185,17 @@ airTrapLevels[ AIR_TRAP_LEVEL_SENSOR_LOWER ].data = (U32)( TRUE == lower ? AIR_TRAP_LEVEL_AIR : AIR_TRAP_LEVEL_FLUID ); airTrapLevels[ AIR_TRAP_LEVEL_SENSOR_UPPER ].data = (U32)( TRUE == upper ? AIR_TRAP_LEVEL_AIR : AIR_TRAP_LEVEL_FLUID ); + if ( STATE_OPEN == getSwitchStatus( PUMP_TRACK_SWITCH ) ) + { + // If the pump track on open, zero the persistent counter to not check the air trap illegal level alarm + airTrapIllegalLevelSensorsCtr = 0; + } + // Check level readings are valid if ( ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) && ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) ) { if ( ++airTrapIllegalLevelSensorsCtr >= AIR_TRAP_ILLEGAL_LEVELS_PERSISTENCE ) - { #ifndef _RELEASE_ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_ILLEGAL_AIR_TRAP_ALARM ) != SW_CONFIG_ENABLE_VALUE ) Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r25ede6f944eb53b68c8073404663c99d3ce158b0 -r60b6eccce34be08891b83299ca12936534d56361 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 25ede6f944eb53b68c8073404663c99d3ce158b0) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 60b6eccce34be08891b83299ca12936534d56361) @@ -24,6 +24,7 @@ #include "NVDataMgmtHDRecords.h" #include "OperationModes.h" #include "PersistentAlarm.h" +#include "Switches.h" #include "SystemCommMessages.h" #include "TaskPriority.h" #include "Timers.h" @@ -652,6 +653,12 @@ { #endif + if ( STATE_OPEN == getSwitchStatus( PUMP_TRACK_SWITCH ) ) + { + // If the pump track on open, zero the persistent counter to not check the blood leak alarm + bloodLeakPersistenceCtr = 0; + } + // Check status reading and act upon if ( BLOOD_LEAK_DETECTED == getBloodLeakStatus() ) { Index: firmware/App/Controllers/Bubble.c =================================================================== diff -u -rafe0d7c5e1ada7872125e04d62fe5602427ffa63 -r60b6eccce34be08891b83299ca12936534d56361 --- firmware/App/Controllers/Bubble.c (.../Bubble.c) (revision afe0d7c5e1ada7872125e04d62fe5602427ffa63) +++ firmware/App/Controllers/Bubble.c (.../Bubble.c) (revision 60b6eccce34be08891b83299ca12936534d56361) @@ -19,6 +19,7 @@ #include "Bubble.h" #include "FPGA.h" #include "OperationModes.h" +#include "Switches.h" #include "SystemCommMessages.h" #include "TaskPriority.h" #include "Timers.h" @@ -200,8 +201,8 @@ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_BUBBLE_ALARMS ) != SW_CONFIG_ENABLE_VALUE ) #endif { - // Check status reading and act upon - if ( BUBBLE_DETECTED == getBubbleStatus( bubble ) ) + // Check status reading and act upon but the pump track switch must be closed + if ( ( BUBBLE_DETECTED == getBubbleStatus( bubble ) ) && ( STATE_CLOSED == getSwitchStatus( PUMP_TRACK_SWITCH ) ) ) { if ( getCurrentOperationMode() == MODE_TREA ) { @@ -231,7 +232,7 @@ } } - if ( TRUE == bubblesSelfTestRequested[ bubble ] ) + if ( ( TRUE == bubblesSelfTestRequested[ bubble ] ) && ( STATE_CLOSED == getSwitchStatus( PUMP_TRACK_SWITCH ) ) ) { state = BUBBLE_SELF_TEST_STATE; bubblesSelfTestRequested[ bubble ] = FALSE;