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
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() |