From 9c41e0523f6eed075f2ae02383e6d0bdec8616f1 Mon Sep 17 00:00:00 2001 From: jj <957713278@qq.com> Date: Tue, 11 Feb 2025 18:09:03 +0800 Subject: [PATCH] Fix the problem that shutting down LDP using service causes laser to shut down --- orbbec_camera/src/ros_service.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/orbbec_camera/src/ros_service.cpp b/orbbec_camera/src/ros_service.cpp index 686a6606..1d84220b 100644 --- a/orbbec_camera/src/ros_service.cpp +++ b/orbbec_camera/src/ros_service.cpp @@ -502,7 +502,15 @@ void OBCameraNode::setLdpEnableCallback( (void)response; bool ldp_enable = request->data; try { - device_->setBoolProperty(OB_PROP_LDP_BOOL, ldp_enable); + if (device_->isPropertySupported(OB_PROP_LASER_CONTROL_INT, OB_PERMISSION_READ_WRITE)) { + auto laser_enable = device_->getIntProperty(OB_PROP_LASER_CONTROL_INT); + device_->setBoolProperty(OB_PROP_LDP_BOOL, ldp_enable); + device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, laser_enable); + } else if (device_->isPropertySupported(OB_PROP_LASER_BOOL, OB_PERMISSION_READ_WRITE)) { + auto laser_enable = device_->getIntProperty(OB_PROP_LASER_BOOL); + device_->setBoolProperty(OB_PROP_LDP_BOOL, ldp_enable); + device_->setIntProperty(OB_PROP_LASER_BOOL, laser_enable); + } response->success = true; } catch (const ob::Error& e) { response->success = false;