Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r88cba75b7c6f0237344609760b151cbfe9a65024 -r28792ebd1efc85c71523e9cbf4164e4cd4eb2ba6 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 88cba75b7c6f0237344609760b151cbfe9a65024) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 28792ebd1efc85c71523e9cbf4164e4cd4eb2ba6) @@ -132,6 +132,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 ********** @@ -426,6 +427,7 @@ previousNormalVenousPressure = 0.0; dryPressureTestsCompleted = FALSE; cartridgeUsedTestRun = FALSE; + occlusionBaselineWasSet = FALSE; selfTestStartTime = getMSTimerCount(); selfTestPreviousPublishDataTime = getMSTimerCount(); selfTestCartridgeSettleTime = getMSTimerCount(); @@ -959,6 +961,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; } @@ -1543,10 +1546,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 @@ -1555,8 +1558,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;