Index: firmware/App/Controllers/Bubble.c =================================================================== diff -u -r7a7bf19d0cf16745566956f45cef57f8eb5df445 -r8466e63f95f65a3ffb18c3af85ac99328e41167b --- firmware/App/Controllers/Bubble.c (.../Bubble.c) (revision 7a7bf19d0cf16745566956f45cef57f8eb5df445) +++ firmware/App/Controllers/Bubble.c (.../Bubble.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) @@ -180,6 +180,7 @@ static BUBBLE_STATES_T handleBubbleNormalState( BUBBLES_T bubble ) { BUBBLE_STATES_T state = BUBBLE_NORMAL_STATE; + TREATMENT_STATE_T treatmentState = getTreatmentState(); if ( ( bubble == ADA ) || ( bubble == ADV) ) { @@ -196,30 +197,39 @@ // Check status reading and act upon if ( BUBBLE_DETECTED == getBubbleStatus( bubble ) ) { - if ( ( getCurrentOperationMode() == MODE_TREA ) && ( getTreatmentState() != TREATMENT_RINSEBACK_STATE ) ) + if ( getCurrentOperationMode() == MODE_TREA ) { - // TODO: Enable if ADA is ever used to detect air bubble on arterial line during treatment - //if ( bubble == ADA ) - //{ - // activateAlarmNoData( ALARM_ID_HD_ARTERIAL_BUBBLE_DETECTED ); - //} - - if ( bubble == ADV ) + switch ( treatmentState ) { - activateAlarmNoData( ALARM_ID_HD_VENOUS_BUBBLE_DETECTED ); - } - } - else if ( ( getCurrentOperationMode() == MODE_TREA ) && ( getTreatmentState() == TREATMENT_RINSEBACK_STATE ) ) - { - // TODO: Enable if ADA is ever used to detect air bubble on arterial line during rinseback - //if ( bubble == ADA ) - //{ - // activateAlarmNoData( ALARM_ID_HD_ARTERIAL_BUBBLE_DETECTED_RINSEBACK ); - //} + case TREATMENT_BLOOD_PRIME_STATE: + case TREATMENT_DIALYSIS_STATE: + case TREATMENT_END_STATE: + // TODO: Enable if ADA is ever used to detect air bubble on arterial line during treatment + //if ( bubble == ADA ) + //{ + // activateAlarmNoData( ALARM_ID_HD_ARTERIAL_BUBBLE_DETECTED ); + //} + if ( bubble == ADV ) + { + activateAlarmNoData( ALARM_ID_HD_VENOUS_BUBBLE_DETECTED ); + } + break; - if ( bubble == ADV ) - { - activateAlarmNoData( ALARM_ID_HD_VENOUS_BUBBLE_DETECTED_RINSEBACK ); + case TREATMENT_RINSEBACK_STATE: + // TODO: Enable if ADA is ever used to detect air bubble on arterial line during rinseback + //if ( bubble == ADA ) + //{ + // activateAlarmNoData( ALARM_ID_HD_ARTERIAL_BUBBLE_DETECTED_RINSEBACK ); + //} + if ( bubble == ADV ) + { + activateAlarmNoData( ALARM_ID_HD_VENOUS_BUBBLE_DETECTED_RINSEBACK ); + } + break; + + default: + // Ignore other treatment states + break; } } } @@ -233,6 +243,7 @@ if ( bubble == ADV ) { clearAlarmCondition( ALARM_ID_HD_VENOUS_BUBBLE_DETECTED ); + clearAlarmCondition( ALARM_ID_HD_VENOUS_BUBBLE_DETECTED_RINSEBACK ); } } #endif