From 5d995eec811cf7daf9bb5373e4f1ce8c332a2cde Mon Sep 17 00:00:00 2001 From: ohadmeir Date: Thu, 19 Dec 2024 12:19:41 +0200 Subject: [PATCH] Power uvc_device for 1 second after creation --- src/ds/d400/d400-color.cpp | 3 +++ src/ds/d400/d400-device.cpp | 3 +++ src/ds/d500/d500-color.cpp | 3 +++ src/ds/d500/d500-device.cpp | 3 +++ 4 files changed, 12 insertions(+) diff --git a/src/ds/d400/d400-color.cpp b/src/ds/d400/d400-color.cpp index eb0ed6dffd..8126751726 100644 --- a/src/ds/d400/d400-color.cpp +++ b/src/ds/d400/d400-color.cpp @@ -93,6 +93,9 @@ namespace librealsense std::unique_ptr(new global_timestamp_reader(std::move(ds_timestamp_reader_metadata), _tf_keeper, enable_global_time_option)), this); + // Many commands need power during initialization phase, no point turning it on and off again for each. + raw_color_ep->power_for_duration( std::chrono::milliseconds( 1000 ) ); + auto color_ep = std::make_shared(this, raw_color_ep, d400_color_fourcc_to_rs2_format, diff --git a/src/ds/d400/d400-device.cpp b/src/ds/d400/d400-device.cpp index b390e9aac8..e81238e5cc 100644 --- a/src/ds/d400/d400-device.cpp +++ b/src/ds/d400/d400-device.cpp @@ -509,6 +509,9 @@ namespace librealsense raw_depth_ep->register_xu(depth_xu); // make sure the XU is initialized every time we power the camera + // Many commands need power during initialization phase, no point turning it on and off again for each. + raw_depth_ep->power_for_duration( std::chrono::milliseconds( 1000 ) ); + auto depth_ep = std::make_shared(this, raw_depth_ep); depth_ep->register_info(RS2_CAMERA_INFO_PHYSICAL_PORT, filter_by_mi(all_device_infos, 0).front().device_path); diff --git a/src/ds/d500/d500-color.cpp b/src/ds/d500/d500-color.cpp index db220350c2..24c7c7958e 100644 --- a/src/ds/d500/d500-color.cpp +++ b/src/ds/d500/d500-color.cpp @@ -83,6 +83,9 @@ namespace librealsense enable_global_time_option ) ), this ); + // Many commands need power during initialization phase, no point turning it on and off again for each. + raw_color_ep->power_for_duration( std::chrono::milliseconds( 1000 ) ); + auto color_ep = std::make_shared(this, raw_color_ep, d500_color_fourcc_to_rs2_format, diff --git a/src/ds/d500/d500-device.cpp b/src/ds/d500/d500-device.cpp index e33c9b144c..301933ed50 100644 --- a/src/ds/d500/d500-device.cpp +++ b/src/ds/d500/d500-device.cpp @@ -375,6 +375,9 @@ namespace librealsense raw_depth_ep->register_xu(depth_xu); // make sure the XU is initialized every time we power the camera + // Many commands need power during initialization phase, no point turning it on and off again for each. + raw_depth_ep->power_for_duration( std::chrono::milliseconds( 1000 ) ); + auto depth_ep = std::make_shared(this, raw_depth_ep); depth_ep->register_info(RS2_CAMERA_INFO_PHYSICAL_PORT, filter_by_mi(all_device_infos, 0).front().device_path);