Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -rb7764e26a3460652da29b1f957706dfaca413226 -r91b04eef69e57cace883435caa5debfacf3edd71 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision b7764e26a3460652da29b1f957706dfaca413226) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 91b04eef69e57cace883435caa5debfacf3edd71) @@ -205,22 +205,22 @@ { BLOOD_LEAK_STATES_T state = BLOOD_LEAK_SELF_TEST_STATE; - if ( FALSE == noFPGABloodLeakDetected() ) // Faked blood leak caused by independent MCU board + if ( SELF_TEST_STATUS_IN_PROGRESS == bloodLeakSelfTestStatus ) { - bloodLeakSelfTestStatus = SELF_TEST_STATUS_PASSED; - clearFPGABloodLeakSelfTest(); - } - else - { - if ( ( ( SELF_TEST_STATUS_IN_PROGRESS == bloodLeakSelfTestStatus ) ) && ( TRUE == didTimeout( bloodLeakSelfTestStartTime, BLOOD_LEAK_TIMEOUT_MS ) ) ) + if ( FALSE == noFPGABloodLeakDetected() ) // Faked blood leak caused by independent MCU board { + bloodLeakSelfTestStatus = SELF_TEST_STATUS_PASSED; + clearFPGABloodLeakSelfTest(); + } + else if ( TRUE == didTimeout( bloodLeakSelfTestStartTime, BLOOD_LEAK_TIMEOUT_MS ) ) + { bloodLeakSelfTestStatus = SELF_TEST_STATUS_FAILED; activateAlarmNoData( ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_FAILURE ); } } - - if ( SELF_TEST_STATUS_IN_PROGRESS != bloodLeakSelfTestStatus ) + else { + // Blood leak self-test finished, wait for self-test faked blood leak clear if ( TRUE == noFPGABloodLeakDetected() ) { state = BLOOD_LEAK_NORMAL_STATE;