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.

63 lines
1.7 KiB

# License: Apache 2.0. See LICENSE file in root directory.
# Copyright(c) 2023 Intel Corporation. All Rights Reserved.
# test:device each(D400*) !D457 # D457 device is known for HW reset issues..
import pyrealsense2 as rs
from rspy import test, log
from rspy.timer import Timer
import time
# hw reset test, we want to make sure the device disconnect & reconnect successfully
dev = None
device_removed = False
device_added = False
def device_changed( info ):
global dev, device_removed, device_added
if info.was_removed(dev):
log.out( "Device removal detected at: ", time.perf_counter())
device_removed = True
for new_dev in info.get_new_devices():
added_sn = new_dev.get_info(rs.camera_info.serial_number)
tested_dev_sn = dev.get_info(rs.camera_info.serial_number)
if added_sn == tested_dev_sn:
log.out( "Device addition detected at: ", time.perf_counter())
device_added = True
################################################################################################
test.start( "HW reset - verify disconnect & reconnect" )
t = Timer( 10 )
dev = test.find_first_device_or_exit()
context = rs.context()
context.set_devices_changed_callback( device_changed )
log.out( "Sending HW-reset command" )
dev.hardware_reset()
log.out( "Pending for device removal" )
t.start()
while not t.has_expired():
if (device_removed):
break
time.sleep( 0.1 )
test.check(device_removed)
log.out("Pending for device addition")
t.start()
while not t.has_expired():
if ( device_added ):
break
time.sleep(0.1)
test.check( device_added )
test.finish()
################################################################################################
test.print_results_and_exit()