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.
65 lines
2.4 KiB
65 lines
2.4 KiB
# License: Apache 2.0. See LICENSE file in root directory.
|
|
# Copyright(c) 2021 Intel Corporation. All Rights Reserved.
|
|
|
|
# test:device each(D400*)
|
|
|
|
|
|
import pyrealsense2 as rs
|
|
from rspy.stopwatch import Stopwatch
|
|
from rspy import test, log
|
|
import time
|
|
import platform
|
|
|
|
|
|
# Start depth + color streams and measure the time from stream opened until first frame arrived using pipeline API.
|
|
# Verify that the time do not exceeds the maximum time allowed
|
|
# Note - Using Windows Media Foundation to handle power management between USB actions take time (~27 ms)
|
|
|
|
|
|
# Set maximum delay for first frame according to product line
|
|
dev = test.find_first_device_or_exit()
|
|
|
|
# The device starts at D0 (Operational) state, allow time for it to get into idle state
|
|
time.sleep( 3 )
|
|
|
|
product_line = dev.get_info(rs.camera_info.product_line)
|
|
if product_line == "D400":
|
|
max_delay_for_depth_frame = 1
|
|
max_delay_for_color_frame = 1
|
|
else:
|
|
log.f("This test support only D400 devices")
|
|
|
|
|
|
def time_to_first_frame(config):
|
|
pipe = rs.pipeline()
|
|
start_call_stopwatch = Stopwatch()
|
|
pipe.start(config)
|
|
pipe.wait_for_frames()
|
|
delay = start_call_stopwatch.get_elapsed()
|
|
pipe.stop()
|
|
return delay
|
|
|
|
|
|
################################################################################################
|
|
test.start("Testing pipeline first depth frame delay on " + product_line + " device - " + platform.system() + " OS")
|
|
depth_cfg = rs.config()
|
|
depth_cfg.enable_stream(rs.stream.depth, rs.format.z16, 30)
|
|
frame_delay = time_to_first_frame(depth_cfg)
|
|
print("Delay from pipeline.start() until first depth frame is: {:.3f} [sec] max allowed is: {:.1f} [sec] ".format(frame_delay, max_delay_for_depth_frame))
|
|
test.check(frame_delay < max_delay_for_depth_frame)
|
|
test.finish()
|
|
|
|
|
|
################################################################################################
|
|
test.start("Testing pipeline first color frame delay on " + product_line + " device - " + platform.system() + " OS")
|
|
color_cfg = rs.config()
|
|
color_cfg.enable_stream(rs.stream.color, rs.format.rgb8, 30)
|
|
frame_delay = time_to_first_frame(color_cfg)
|
|
print("Delay from pipeline.start() until first color frame is: {:.3f} [sec] max allowed is: {:.1f} [sec] ".format(frame_delay, max_delay_for_color_frame))
|
|
test.check(frame_delay < max_delay_for_color_frame)
|
|
test.finish()
|
|
|
|
|
|
################################################################################################
|
|
test.print_results_and_exit()
|