From 90424271d5731466b8388d1cf96dce10ce1e97b7 Mon Sep 17 00:00:00 2001 From: ob-yalian Date: Sat, 22 Aug 2026 19:02:37 +0800 Subject: [PATCH] Fix PWM trigger error handling and add warning for incompatible parameters --- orbbec_camera/src/ob_camera_node.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/orbbec_camera/src/ob_camera_node.cpp b/orbbec_camera/src/ob_camera_node.cpp index 9841b433..69670685 100644 --- a/orbbec_camera/src/ob_camera_node.cpp +++ b/orbbec_camera/src/ob_camera_node.cpp @@ -4366,14 +4366,14 @@ int OBCameraNode::openSocSyncPwmTrigger(uint16_t fps) { ret = write(gmsl_trigger_fd_, ¶m, sizeof(param)); if (ret < 0) { perror("write device failed\n"); - close(gmsl_trigger_fd_); + closeSocSyncPwmTrigger(); return ret; } ret = read(gmsl_trigger_fd_, &rd_par, sizeof(rd_par)); if (ret < 0) { perror("read device failed\n"); - close(gmsl_trigger_fd_); + closeSocSyncPwmTrigger(); return ret; } std::cout << "Read param mode=" << rd_par.mode << ", fps=" << rd_par.fps << std::endl; @@ -4563,6 +4563,14 @@ void OBCameraNode::getParameters() { colorizer_mode_ = normalizeClosedSetParameterValue( logger_, "depth_colorizer_mode", colorizer_mode_, {"none", "jet", "jet_inv", "gray"}, "none"); setAndGetNodeParameter(enable_d2c_viewer_, "enable_d2c_viewer", false); + if (enable_d2c_viewer_ && colorizer_mode_ != "none") { + RCLCPP_WARN_STREAM( + logger_, + "enable_d2c_viewer requires a raw 16UC1 depth image and is incompatible with " + "depth_colorizer_mode='" + << colorizer_mode_ << "'. Disabling enable_d2c_viewer."); + enable_d2c_viewer_ = false; + } setAndGetNodeParameter(disparity_to_depth_mode_, "disparity_to_depth_mode", ""); disparity_to_depth_mode_ = normalizeClosedSetParameterValue(logger_, "disparity_to_depth_mode", disparity_to_depth_mode_,