diff --git a/orbbec_camera/include/orbbec_camera/ob_camera_node.h b/orbbec_camera/include/orbbec_camera/ob_camera_node.h index 60b132b0..56be6cb7 100644 --- a/orbbec_camera/include/orbbec_camera/ob_camera_node.h +++ b/orbbec_camera/include/orbbec_camera/ob_camera_node.h @@ -192,7 +192,7 @@ class OBCameraNode { const std::shared_ptr& request, std::shared_ptr& response); - void getApiVersion(const std::shared_ptr& request_header, + void getSDKVersion(const std::shared_ptr& request_header, const std::shared_ptr& request, std::shared_ptr& response); diff --git a/orbbec_camera/src/ros_service.cpp b/orbbec_camera/src/ros_service.cpp index e9f5a789..66583531 100644 --- a/orbbec_camera/src/ros_service.cpp +++ b/orbbec_camera/src/ros_service.cpp @@ -17,6 +17,7 @@ #include "orbbec_camera/utils.h" namespace orbbec_camera { + void OBCameraNode::setupCameraCtrlServices() { using std_srvs::srv::SetBool; for (auto stream_index : IMAGE_STREAMS) { @@ -113,10 +114,10 @@ void OBCameraNode::setupCameraCtrlServices() { getDeviceInfoCallback(request_header, request, response); }); get_api_version_srv_ = node_->create_service( - "get_api_version", [this](const std::shared_ptr request_header, + "get_sdk_version", [this](const std::shared_ptr request_header, const std::shared_ptr request, std::shared_ptr response) { - getApiVersion(request_header, request, response); + getSDKVersion(request_header, request, response); }); } @@ -172,11 +173,15 @@ void OBCameraNode::getGainCallback(const std::shared_ptr& req RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__); break; } + response->success = true; } catch (ob::Error& e) { + response->success = false; response->message = e.getMessage(); } catch (const std::exception& e) { + response->success = false; response->message = e.what(); } catch (...) { + response->success = false; response->message = "unknown error"; } } @@ -218,11 +223,15 @@ void OBCameraNode::getWhiteBalanceCallback(const std::shared_ptr& response) { try { response->data = device_->getIntProperty(OB_PROP_COLOR_WHITE_BALANCE_INT); + response->success = true; } catch (const ob::Error& e) { + response->success = false; response->message = e.getMessage(); } catch (const std::exception& e) { + response->success = false; response->message = e.what(); } catch (...) { + response->success = false; response->message = "unknown error"; } } @@ -332,12 +341,16 @@ void OBCameraNode::setLaserEnableCallback( bool laser_enable = request->data; try { device_->setBoolProperty(OB_PROP_LASER_BOOL, laser_enable); + response->success = true; } catch (const ob::Error& e) { response->message = e.getMessage(); + response->success = false; } catch (const std::exception& e) { response->message = e.what(); + response->success = false; } catch (...) { response->message = "unknown error"; + response->success = false; } } @@ -362,6 +375,7 @@ void OBCameraNode::setLdpEnableCallback( response->message = "unknown error"; } } + void OBCameraNode::getExposureCallback(const std::shared_ptr& request, std::shared_ptr& response, const stream_index_pair& stream_index) { @@ -381,14 +395,19 @@ void OBCameraNode::getExposureCallback(const std::shared_ptr& RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__); break; } + response->success = true; } catch (const ob::Error& e) { response->message = e.getMessage(); + response->success = false; } catch (const std::exception& e) { response->message = e.what(); + response->success = false; } catch (...) { response->message = "unknown error"; + response->success = false; } } + void OBCameraNode::getDeviceInfoCallback(const std::shared_ptr& request_header, const std::shared_ptr& request, std::shared_ptr& response) { @@ -412,7 +431,8 @@ void OBCameraNode::getDeviceInfoCallback(const std::shared_ptr response->message = "unknown error"; } } -void OBCameraNode::getApiVersion(const std::shared_ptr& request_header, + +void OBCameraNode::getSDKVersion(const std::shared_ptr& request_header, const std::shared_ptr& request, std::shared_ptr& response) { try {