Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -re6ce0ae6f62370bc33113bf614678fed170ff3b8 -rb5409fe2cdc66d0ee781d94ce33a33040e2edf41 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision e6ce0ae6f62370bc33113bf614678fed170ff3b8) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision b5409fe2cdc66d0ee781d94ce33a33040e2edf41) @@ -133,6 +133,7 @@ static BOOL useHeparin; ///< Flag indicates the user of heparin. static BOOL selfTestsResumeRequested; ///< Flag indicates user requesting self-tests resume. static BOOL cartridgeUsedTestRun; ///< Flag indicates whether the used cartridge test has been run. +static BOOL occlusionBaselineWasSet; ///< Flag indicates whether the blood pump occlusion baseline for installed cartridge has been set. static BOOL doorStateAfterCartridgeInstall; ///< Flag indicates state of front door for saline clamp check after cartridge installed. // ********** private function prototypes ********** @@ -427,6 +428,7 @@ previousNormalVenousPressure = 0.0; dryPressureTestsCompleted = FALSE; cartridgeUsedTestRun = FALSE; + occlusionBaselineWasSet = FALSE; selfTestStartTime = getMSTimerCount(); selfTestPreviousPublishDataTime = getMSTimerCount(); selfTestCartridgeSettleTime = getMSTimerCount(); @@ -961,6 +963,7 @@ if ( TRUE == didTimeout( selfTestCartridgeSettleTime, CARTRIDGE_INSERT_PRESSURE_SETTLE_TIME_MS ) ) { setOcclusionInstallLevel(); // Record occlusion pressure level after a new cartridge is installed + occlusionBaselineWasSet = TRUE; doorClosedRequired( TRUE, TRUE ); state = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; } @@ -1545,10 +1548,10 @@ selfTestStartTime = getMSTimerCount(); selfTestsResumeRequested = FALSE; selfTestCartridgeSettleTime = getMSTimerCount(); + doorClosedRequired( TRUE, TRUE ); if ( TRUE == dryPressureTestsCompleted ) { - doorClosedRequired( TRUE, TRUE ); state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; } else @@ -1557,8 +1560,14 @@ setValvePosition( VBA, VALVE_POSITION_B_OPEN ); if ( TRUE == cartridgeUsedTestRun ) { + doorClosedRequired( TRUE, TRUE ); state = DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE; } + else if ( occlusionBaselineWasSet != TRUE ) + { + selfTestCartridgeSettleTime = getMSTimerCount(); + state = DRY_SELF_TESTS_START_STATE; + } else { state = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE;