Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r4ddf1777acc4298a9ed034e56b66916256d22c18 -rdf63092fbdea0bd7c06a5ff18cc12c4eb72e4cbb --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 4ddf1777acc4298a9ed034e56b66916256d22c18) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision df63092fbdea0bd7c06a5ff18cc12c4eb72e4cbb) @@ -8,7 +8,7 @@ * @file SelfTests.c * * @author (last) Sean Nash -* @date (last) 07-Feb-2023 +* @date (last) 10-Feb-2023 * * @author (original) Quang Nguyen * @date (original) 28-Jan-2021 @@ -143,6 +143,7 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestStartState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestWaitForDoorCloseState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestUsedCartridgeCheckState( void ); +static DRY_SELF_TESTS_STATE_T handleDrySelfTestCartridgeInstalledCheckState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsNormalSetupState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsVenousSetupState( void ); static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsVenousState( void ); @@ -442,16 +443,7 @@ break; case DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE: - if ( SELF_TEST_STATUS_PASSED == execPresOcclDryTest() ) - { - setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); - setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); - setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); - setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); - setValveAirTrap( STATE_OPEN ); - pressureSelfTestPreNormalStartTime = getMSTimerCount(); - currentDrySelfTestsState = DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE; - } + currentDrySelfTestsState = handleDrySelfTestCartridgeInstalledCheckState(); break; case DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE: @@ -1035,6 +1027,38 @@ /*********************************************************************//** * @brief + * The handleDrySelfTestCartridgeInstalledCheckState function verifies that + * a cartridge has been installed by looking at the OB reading. + * @details Inputs: none + * @details Outputs: none + * @return the next state of dry self-tests state machine + *************************************************************************/ +static DRY_SELF_TESTS_STATE_T handleDrySelfTestCartridgeInstalledCheckState( void ) +{ + DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE; + + if ( SELF_TEST_STATUS_PASSED == execPresOcclDryTest() ) + { + setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); + setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); + setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); + setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); + setValveAirTrap( STATE_OPEN ); + pressureSelfTestPreNormalStartTime = getMSTimerCount(); + state = DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE; + } + + if ( TRUE == doesAlarmStatusIndicateStop() ) + { + state = DRY_SELF_TESTS_STOPPED_STATE; + setupForSelfTestsStop(); + } + + return state; +} + +/*********************************************************************//** + * @brief * The handleDrySelfTestPressureSensorsSetupState function handles the setup * for pressure sensors dry self-test. * @details Inputs: pressureSelfTestPreNormalStartTime