Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r9316f6769a2f4ac9f85847cbc22166c8b43cef83 -rfa41b85cf47fb01cd905b2ed53d472a9cb0c1706 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 9316f6769a2f4ac9f85847cbc22166c8b43cef83) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision fa41b85cf47fb01cd905b2ed53d472a9cb0c1706) @@ -1261,20 +1261,31 @@ *************************************************************************/ SELF_TEST_STATUS_T execBloodFlowTest( void ) { - SELF_TEST_STATUS_T result = SELF_TEST_STATUS_FAILED; - CALIBRATION_DATA_T cal; + SELF_TEST_STATUS_T result = SELF_TEST_STATUS_PASSED; + U08 const bfmStatus = getFPGABloodFlowMeterStatus(); // Retrieve blood flow sensor calibration data and check for sensor connected status + if ( BFM_SENSOR_PARAM_CORRUPT_STATUS != bfmStatus ) + { #ifndef SKIP_CALIBRATION_TESTS - if ( ( TRUE == getCalibrationData( &cal ) ) && ( BFM_SENSOR_PARAM_CORRUPT_STATUS != getFPGABloodFlowMeterStatus() ) ) + CALIBRATION_DATA_T cal; + + if ( TRUE == getCalibrationData( &cal ) ) + { + bloodFlowCalGain = cal.bloodFlowGain; + bloodFlowCalOffset = cal.bloodFlowOffset_mL_min; + } + else + { + result = SELF_TEST_STATUS_FAILED; + } +#endif + } + else { - bloodFlowCalGain = cal.bloodFlowGain; - bloodFlowCalOffset = cal.bloodFlowOffset_mL_min; - result = SELF_TEST_STATUS_PASSED; + result = SELF_TEST_STATUS_FAILED; + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_BLOOD_FLOW_STATUS_SELF_TEST_FAILURE, (U32)bfmStatus ); } -#else - result = SELF_TEST_STATUS_PASSED; -#endif return result; }