mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-11 06:59:49 +08:00
fix: rename delay_stream_start_after_reboot to delay_stream_start_after_reconnect
This commit is contained in:
@@ -155,7 +155,7 @@ class OBCameraNodeDriver : public rclcpp::Node {
|
|||||||
std::atomic<bool> firmware_update_success_{false};
|
std::atomic<bool> firmware_update_success_{false};
|
||||||
std::atomic<bool> need_reupdate_{false};
|
std::atomic<bool> need_reupdate_{false};
|
||||||
std::atomic<bool> is_reupdating_{false}; // Flag to track if we're in reupdate process
|
std::atomic<bool> is_reupdating_{false}; // Flag to track if we're in reupdate process
|
||||||
std::atomic<bool> delay_stream_start_after_reboot_{false};
|
std::atomic<bool> delay_stream_start_after_reconnect_{false};
|
||||||
rclcpp::TimerBase::SharedPtr device_status_timer_ = nullptr;
|
rclcpp::TimerBase::SharedPtr device_status_timer_ = nullptr;
|
||||||
int device_status_interval_hz = 2; // 2Hz
|
int device_status_interval_hz = 2; // 2Hz
|
||||||
rclcpp::Publisher<orbbec_camera_msgs::msg::DeviceStatus>::SharedPtr device_status_pub_ = nullptr;
|
rclcpp::Publisher<orbbec_camera_msgs::msg::DeviceStatus>::SharedPtr device_status_pub_ = nullptr;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
std::string g_camera_name = "orbbec_camera"; // Assuming this is declared elsewhere
|
std::string g_camera_name = "orbbec_camera"; // Assuming this is declared elsewhere
|
||||||
std::string g_time_domain = "global"; // Assuming this is declared elsewhere
|
std::string g_time_domain = "global"; // Assuming this is declared elsewhere
|
||||||
namespace {
|
namespace {
|
||||||
constexpr auto kStreamStartDelayAfterReboot = std::chrono::seconds(5);
|
constexpr auto kStreamStartDelayAfterReconnect = std::chrono::seconds(5);
|
||||||
|
|
||||||
std::string getLogDirectoryForCamera(const std::string &camera_name) {
|
std::string getLogDirectoryForCamera(const std::string &camera_name) {
|
||||||
const char *log_dir_override = std::getenv("ORBBEC_LOG_DIR");
|
const char *log_dir_override = std::getenv("ORBBEC_LOG_DIR");
|
||||||
@@ -477,6 +477,7 @@ void OBCameraNodeDriver::onDeviceDisconnected(const std::shared_ptr<ob::DeviceLi
|
|||||||
if (uid == device_unique_id_ || serial_number_ == serial_number) {
|
if (uid == device_unique_id_ || serial_number_ == serial_number) {
|
||||||
RCLCPP_INFO_STREAM(logger_,
|
RCLCPP_INFO_STREAM(logger_,
|
||||||
"device with " << uid << " disconnected, notify reset device thread");
|
"device with " << uid << " disconnected, notify reset device thread");
|
||||||
|
delay_stream_start_after_reconnect_ = true;
|
||||||
reset_device_flag_ = true;
|
reset_device_flag_ = true;
|
||||||
reset_device_cond_.notify_all();
|
reset_device_cond_.notify_all();
|
||||||
break;
|
break;
|
||||||
@@ -907,7 +908,7 @@ void OBCameraNodeDriver::rebootDeviceCallback(
|
|||||||
} else {
|
} else {
|
||||||
std::string current_device_uid = device_unique_id_;
|
std::string current_device_uid = device_unique_id_;
|
||||||
RCLCPP_INFO_STREAM(logger_, "Rebooting device with UID: " << current_device_uid);
|
RCLCPP_INFO_STREAM(logger_, "Rebooting device with UID: " << current_device_uid);
|
||||||
delay_stream_start_after_reboot_ = true;
|
delay_stream_start_after_reconnect_ = true;
|
||||||
if (ob_lidar_node_) {
|
if (ob_lidar_node_) {
|
||||||
ob_lidar_node_->rebootDevice();
|
ob_lidar_node_->rebootDevice();
|
||||||
} else if (ob_camera_node_) {
|
} else if (ob_camera_node_) {
|
||||||
@@ -1332,10 +1333,10 @@ void OBCameraNodeDriver::initializeDevice(const std::shared_ptr<ob::Device> &dev
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool should_delay_stream_start = delay_stream_start_after_reboot_.exchange(false) &&
|
const bool should_delay_stream_start = delay_stream_start_after_reconnect_.exchange(false) &&
|
||||||
isGemini305SeriesPID(device_info_->getPid());
|
isGemini305SeriesPID(device_info_->getPid());
|
||||||
if (should_delay_stream_start) {
|
if (should_delay_stream_start) {
|
||||||
std::this_thread::sleep_for(kStreamStartDelayAfterReboot);
|
std::this_thread::sleep_for(kStreamStartDelayAfterReconnect);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ob_camera_node_) {
|
if (ob_camera_node_) {
|
||||||
@@ -1748,7 +1749,7 @@ void OBCameraNodeDriver::firmwareUpdateCallback(OBFwUpdateState state, const cha
|
|||||||
RCLCPP_WARN_STREAM(logger_, "Exception during sync timer cleanup in firmware update");
|
RCLCPP_WARN_STREAM(logger_, "Exception during sync timer cleanup in firmware update");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delay_stream_start_after_reboot_ = true;
|
delay_stream_start_after_reconnect_ = true;
|
||||||
device_->reboot();
|
device_->reboot();
|
||||||
} else if (ob_lidar_node_) {
|
} else if (ob_lidar_node_) {
|
||||||
ob_lidar_node_.reset();
|
ob_lidar_node_.reset();
|
||||||
|
|||||||
Reference in New Issue
Block a user