Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r23016be42e59935da5aa53b26b8cb31e2a240858 -r9c970f6c10aaa43eed47bf94d51e789427b34cca --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 23016be42e59935da5aa53b26b8cb31e2a240858) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 9c970f6c10aaa43eed47bf94d51e789427b34cca) @@ -396,15 +396,19 @@ switch ( currentDrySelfTestsState ) { case DRY_SELF_TESTS_START_STATE: - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_DRY_SELF_TESTS ) ) + // Ensure occlusion sensor has time to settle after cartridge insertion before starting dry self-tests + if ( TRUE == didTimeout( selfTestStartTime, CARTRIDGE_INSERT_PRESSURE_SETTLE_TIME_MS ) ) { - // TODO: Remove once dry self-test is ready to use - currentDrySelfTestsState = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; + setOcclusionInstallLevel(); // Record occlusion pressure level after a new cartridge is installed + if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_DRY_SELF_TESTS ) ) + { + currentDrySelfTestsState = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; + } + else + { + currentDrySelfTestsState = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; + } } - else - { - currentDrySelfTestsState = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; - } break; case DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE: @@ -847,7 +851,6 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestUsedCartridgeCheckState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE; - BUBBLE_STATUS_T const ADVBubbleStatus = getBubbleStatus( ADV ); if ( ( BUBBLE_DETECTED == ADVBubbleStatus ) &&