You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
3.2 KiB

# License: Apache 2.0. See LICENSE file in root directory.
# Copyright(c) 2023 Intel Corporation. All Rights Reserved.
#test:device D455
import pyrealsense2 as rs
import pyrsutils as rsutils
from rspy import test, log
from rspy import tests_wrapper as tw
ctx = rs.context()
device = test.find_first_device_or_exit();
depth_sensor = device.first_depth_sensor()
fw_version = rsutils.version( device.get_info( rs.camera_info.firmware_version ))
tw.start_wrapper( device )
if fw_version < rsutils.version(5,15,0,0):
log.i(f"FW version {fw_version} does not support DEPTH_AUTO_EXPOSURE_MODE option, skipping test...")
test.print_results_and_exit()
REGULAR = 0.0
ACCELERATED = 1.0
################################################################################################
test.start("Verify camera AE mode default is REGULAR")
test.check_equal(depth_sensor.get_option(rs.option.auto_exposure_mode), REGULAR)
test.finish()
################################################################################################
test.start("Verify can set when auto exposure on")
depth_sensor.set_option(rs.option.enable_auto_exposure, True)
test.check_equal(bool(depth_sensor.get_option(rs.option.enable_auto_exposure)), True)
depth_sensor.set_option(rs.option.auto_exposure_mode, ACCELERATED)
test.check_equal(depth_sensor.get_option(rs.option.auto_exposure_mode), ACCELERATED)
depth_sensor.set_option(rs.option.auto_exposure_mode, REGULAR)
test.check_equal(depth_sensor.get_option(rs.option.auto_exposure_mode), REGULAR)
test.finish()
################################################################################################
test.start("Test Set during idle mode")
depth_sensor.set_option(rs.option.enable_auto_exposure, False)
test.check_equal(bool(depth_sensor.get_option(rs.option.enable_auto_exposure)), False)
depth_sensor.set_option(rs.option.auto_exposure_mode, ACCELERATED)
test.check_equal(depth_sensor.get_option(rs.option.auto_exposure_mode), ACCELERATED)
depth_sensor.set_option(rs.option.auto_exposure_mode,REGULAR)
test.check_equal(depth_sensor.get_option(rs.option.auto_exposure_mode), REGULAR)
test.finish()
################################################################################################
test.start("Test Set during streaming mode is not allowed")
# Reset option to REGULAR
depth_sensor.set_option(rs.option.enable_auto_exposure, False)
test.check_equal(bool(depth_sensor.get_option(rs.option.enable_auto_exposure)), False)
depth_sensor.set_option(rs.option.auto_exposure_mode, REGULAR)
test.check_equal(depth_sensor.get_option(rs.option.auto_exposure_mode), REGULAR)
# Start streaming
depth_profile = next(p for p in depth_sensor.profiles if p.stream_type() == rs.stream.depth)
depth_sensor.open(depth_profile)
depth_sensor.start(lambda x: None)
try:
depth_sensor.set_option(rs.option.auto_exposure_mode,ACCELERATED)
test.fail("Exception was expected while setting depth auto exposure mode during streaming depth sensor")
except:
test.check_equal(depth_sensor.get_option(rs.option.auto_exposure_mode), REGULAR)
depth_sensor.stop()
depth_sensor.close()
test.finish()
################################################################################################
tw.stop_wrapper( device )
test.print_results_and_exit()