Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -rd8b6a463f9e65c8ac145cf634d5d6641fb3bbd89 -r180f01b2abd71939b5265069e88d85dea4eec393 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision d8b6a463f9e65c8ac145cf634d5d6641fb3bbd89) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 180f01b2abd71939b5265069e88d85dea4eec393) @@ -58,6 +58,7 @@ { DRY_SELF_TESTS_START_STATE = 0, ///< Dry self-tests starting state. DRY_SELF_TESTS_BUBBLE_DETECTOR_STATE, ///< Bubble detectors dry self-tests state. + DRY_SELF_TESTS_AIR_TRAP_STATE, ///< Air trap fill level ultrasonic sensor dry self-tests state. DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE, ///< Occlusion sensors dry self-tests state. DRY_SELF_TESTS_COMPLETE, ///< Dry self-test complete state. NUM_OF_DRY_SELF_TESTS_STATES ///< Number of no cartridge self-tests states. @@ -258,7 +259,7 @@ if ( ( TRUE == isADADetectedAir ) && ( TRUE == isADADetectedAir ) ) { - currentDrySelfTestsState = DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE; + currentDrySelfTestsState = DRY_SELF_TESTS_AIR_TRAP_STATE; } else { @@ -267,6 +268,18 @@ } break; + case DRY_SELF_TESTS_AIR_TRAP_STATE: + if ( ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) && + ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) ) + { + currentDrySelfTestsState = DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE; + } + else + { + activateAlarmNoData( ALARM_ID_INSTALL_NEW_CARTRIDGE ); + } + break; + case DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE: currentDrySelfTestsState = DRY_SELF_TESTS_COMPLETE; break;