fix: rename delay_stream_start_after_reboot to delay_stream_start_after_reconnect

This commit is contained in:
ob-yalian
2026-07-14 11:34:03 +08:00
parent 0fb04ce00c
commit ad6045912e
2 changed files with 7 additions and 6 deletions
@@ -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;
+6 -5
View File
@@ -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();