mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-11 06:59:49 +08:00
catch error when ctrl camera
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (c) 2013-2021 Orbbec 3D Technology, Inc */
|
/* Copyright (c) 2013-2022 Orbbec 3D Technology, Inc */
|
||||||
/* */
|
/* */
|
||||||
/* PROPRIETARY RIGHTS of Orbbec 3D Technology are involved in the */
|
/* PROPRIETARY RIGHTS of Orbbec 3D Technology are involved in the */
|
||||||
/* subject matter of this material. All manufacturing, reproduction, use, */
|
/* subject matter of this material. All manufacturing, reproduction, use, */
|
||||||
@@ -29,13 +29,6 @@
|
|||||||
#define OB_ROS_VERSION_STR \
|
#define OB_ROS_VERSION_STR \
|
||||||
(VAR_ARG_STRING(OB_ROS_MAJOR_VERSION.OB_ROS_MINOR_VERSION.OB_ROS_PATCH_VERSION))
|
(VAR_ARG_STRING(OB_ROS_MAJOR_VERSION.OB_ROS_MINOR_VERSION.OB_ROS_PATCH_VERSION))
|
||||||
|
|
||||||
#define ROS_DEBUG(...) RCLCPP_DEBUG(_logger, __VA_ARGS__)
|
|
||||||
#define ROS_INFO(...) RCLCPP_INFO(_logger, __VA_ARGS__)
|
|
||||||
#define ROS_WARN(...) RCLCPP_WARN(_logger, __VA_ARGS__)
|
|
||||||
#define ROS_ERROR(...) RCLCPP_ERROR(_logger, __VA_ARGS__)
|
|
||||||
|
|
||||||
#
|
|
||||||
|
|
||||||
namespace orbbec_camera {
|
namespace orbbec_camera {
|
||||||
|
|
||||||
const bool ALIGN_DEPTH = false;
|
const bool ALIGN_DEPTH = false;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (c) 2013-2021 Orbbec 3D Technology, Inc */
|
/* Copyright (c) 2013-2022 Orbbec 3D Technology, Inc */
|
||||||
/* */
|
/* */
|
||||||
/* PROPRIETARY RIGHTS of Orbbec 3D Technology are involved in the */
|
/* PROPRIETARY RIGHTS of Orbbec 3D Technology are involved in the */
|
||||||
/* subject matter of this material. All manufacturing, reproduction, use, */
|
/* subject matter of this material. All manufacturing, reproduction, use, */
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
|
/**************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) 2013-2022 Orbbec 3D Technology, Inc */
|
||||||
|
/* */
|
||||||
|
/* PROPRIETARY RIGHTS of Orbbec 3D Technology are involved in the */
|
||||||
|
/* subject matter of this material. All manufacturing, reproduction, use, */
|
||||||
|
/* and sales rights pertaining to this subject matter are governed by the */
|
||||||
|
/* license agreement. The recipient of this software implicitly accepts */
|
||||||
|
/* the terms of the license. */
|
||||||
|
/* */
|
||||||
|
/**************************************************************************/
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|||||||
@@ -1,18 +1,14 @@
|
|||||||
import imp
|
|
||||||
from orbbec_camera_msgs.msg import Extrinsics
|
from orbbec_camera_msgs.msg import Extrinsics
|
||||||
from rclpy.node import Node
|
from rclpy.node import Node
|
||||||
from rclpy.qos import qos_profile_system_default
|
from rclpy.qos import qos_profile_system_default
|
||||||
import rclpy
|
import rclpy
|
||||||
|
|
||||||
|
|
||||||
class EchoExtrinsics(Node):
|
class TestNode(Node):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__("echo_extrinsics")
|
super().__init__("test_node")
|
||||||
self.subscription = self.create_subscription(
|
self.subscription = self.create_subscription(
|
||||||
Extrinsics,
|
Extrinsics, "/camera/extrinsics", self.callback, qos_profile_system_default
|
||||||
"/camera/extrinsics",
|
|
||||||
self.callback,
|
|
||||||
qos_profile_system_default
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def callback(self, msg: Extrinsics):
|
def callback(self, msg: Extrinsics):
|
||||||
@@ -26,7 +22,11 @@ class EchoExtrinsics(Node):
|
|||||||
|
|
||||||
|
|
||||||
def main(args=None):
|
def main(args=None):
|
||||||
rclpy.init()
|
rclpy.init(args=args)
|
||||||
|
test_node = TestNode()
|
||||||
|
rclpy.spin(test_node)
|
||||||
|
test_node.destry_node()
|
||||||
|
rclpy.shutdown()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
from cgi import test
|
||||||
|
import sys
|
||||||
|
from urllib import response
|
||||||
|
from orbbec_camera_msgs.srv import SetInt32
|
||||||
|
from rclpy.node import Node
|
||||||
|
from rclpy.qos import qos_profile_system_default
|
||||||
|
import rclpy
|
||||||
|
|
||||||
|
|
||||||
|
class TestNode(Node):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__("test_node")
|
||||||
|
sensor_name = str(sys.argv[1])
|
||||||
|
assert not sensor_name is None
|
||||||
|
self.cli = self.create_client(
|
||||||
|
SetInt32, "/camera/set/" + sensor_name + "/exposure"
|
||||||
|
)
|
||||||
|
while not self.cli.wait_for_service(timeout_sec=1.0):
|
||||||
|
self.get_logger().info("service not available, waiting again...")
|
||||||
|
self.req = SetInt32.Request()
|
||||||
|
|
||||||
|
def send_request(self):
|
||||||
|
self.req.data = int(sys.argv[2])
|
||||||
|
self.future = self.cli.call_async(self.req)
|
||||||
|
|
||||||
|
|
||||||
|
def main(args=None):
|
||||||
|
rclpy.init(args=args)
|
||||||
|
test_node = TestNode()
|
||||||
|
test_node.send_request()
|
||||||
|
while rclpy.ok():
|
||||||
|
rclpy.spin_once(test_node)
|
||||||
|
if test_node.future.done():
|
||||||
|
try:
|
||||||
|
response = test_node.future.result()
|
||||||
|
except Exception as e:
|
||||||
|
test_node.get_logger().info("Service call failed %r" % (e,))
|
||||||
|
else:
|
||||||
|
test_node.get_logger().info("set camera exposure success")
|
||||||
|
break
|
||||||
|
|
||||||
|
test_node.destry_node()
|
||||||
|
rclpy.shutdown()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
from cgi import test
|
||||||
|
import sys
|
||||||
|
from urllib import response
|
||||||
|
from orbbec_camera_msgs.srv import SetInt32
|
||||||
|
from rclpy.node import Node
|
||||||
|
from rclpy.qos import qos_profile_system_default
|
||||||
|
import rclpy
|
||||||
|
|
||||||
|
|
||||||
|
class TestNode(Node):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__("test_node")
|
||||||
|
sensor_name = str(sys.argv[1])
|
||||||
|
assert not sensor_name is None
|
||||||
|
self.cli = self.create_client(
|
||||||
|
SetInt32, "/camera/set/" + sensor_name + "/gain"
|
||||||
|
)
|
||||||
|
while not self.cli.wait_for_service(timeout_sec=1.0):
|
||||||
|
self.get_logger().info("service not available, waiting again...")
|
||||||
|
self.req = SetInt32.Request()
|
||||||
|
|
||||||
|
def send_request(self):
|
||||||
|
self.req.data = int(sys.argv[2])
|
||||||
|
self.future = self.cli.call_async(self.req)
|
||||||
|
|
||||||
|
|
||||||
|
def main(args=None):
|
||||||
|
rclpy.init(args=args)
|
||||||
|
test_node = TestNode()
|
||||||
|
test_node.send_request()
|
||||||
|
while rclpy.ok():
|
||||||
|
rclpy.spin_once(test_node)
|
||||||
|
if test_node.future.done():
|
||||||
|
try:
|
||||||
|
response = test_node.future.result()
|
||||||
|
except Exception as e:
|
||||||
|
test_node.get_logger().info("Service call failed %r" % (e,))
|
||||||
|
else:
|
||||||
|
test_node.get_logger().info("set camera gain success")
|
||||||
|
break
|
||||||
|
|
||||||
|
test_node.destry_node()
|
||||||
|
rclpy.shutdown()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ void OBCameraNode::setupCameraCtrlServices() {
|
|||||||
for (auto stream_index : IMAGE_STREAMS) {
|
for (auto stream_index : IMAGE_STREAMS) {
|
||||||
auto stream_name = stream_name_[stream_index.first];
|
auto stream_name = stream_name_[stream_index.first];
|
||||||
if (enable_[stream_index]) {
|
if (enable_[stream_index]) {
|
||||||
std::string service_name = "get/" + stream_name + "/exposure";
|
std::string service_name = "get_" + stream_name + "_exposure";
|
||||||
get_exposure_srv_[stream_index] = node_->create_service<GetInt32>(
|
get_exposure_srv_[stream_index] = node_->create_service<GetInt32>(
|
||||||
service_name, [this, stream_index = stream_index](
|
service_name, [this, stream_index = stream_index](
|
||||||
const std::shared_ptr<rmw_request_id_t> request_header,
|
const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
@@ -18,7 +18,7 @@ void OBCameraNode::setupCameraCtrlServices() {
|
|||||||
getExposureCallback(request, response, stream_index);
|
getExposureCallback(request, response, stream_index);
|
||||||
});
|
});
|
||||||
|
|
||||||
service_name = "set/" + stream_name + "/exposure";
|
service_name = "set_" + stream_name + "_exposure";
|
||||||
set_exposure_srv_[stream_index] = node_->create_service<SetInt32>(
|
set_exposure_srv_[stream_index] = node_->create_service<SetInt32>(
|
||||||
service_name, [this, stream_index = stream_index](
|
service_name, [this, stream_index = stream_index](
|
||||||
const std::shared_ptr<rmw_request_id_t> request_header,
|
const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
@@ -26,7 +26,7 @@ void OBCameraNode::setupCameraCtrlServices() {
|
|||||||
std::shared_ptr<SetInt32::Response> response) {
|
std::shared_ptr<SetInt32::Response> response) {
|
||||||
setExposureCallback(request, response, stream_index);
|
setExposureCallback(request, response, stream_index);
|
||||||
});
|
});
|
||||||
service_name = "get/" + stream_name + "/gain";
|
service_name = "get_" + stream_name + "_gain";
|
||||||
get_gain_srv_[stream_index] = node_->create_service<GetInt32>(
|
get_gain_srv_[stream_index] = node_->create_service<GetInt32>(
|
||||||
service_name, [this, stream_index = stream_index](
|
service_name, [this, stream_index = stream_index](
|
||||||
const std::shared_ptr<rmw_request_id_t> request_header,
|
const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
@@ -35,7 +35,7 @@ void OBCameraNode::setupCameraCtrlServices() {
|
|||||||
getGainCallback(request, response, stream_index);
|
getGainCallback(request, response, stream_index);
|
||||||
});
|
});
|
||||||
|
|
||||||
service_name = "set/" + stream_name + "/gain";
|
service_name = "set_" + stream_name + "_gain";
|
||||||
set_gain_srv_[stream_index] = node_->create_service<SetInt32>(
|
set_gain_srv_[stream_index] = node_->create_service<SetInt32>(
|
||||||
service_name, [this, stream_index = stream_index](
|
service_name, [this, stream_index = stream_index](
|
||||||
const std::shared_ptr<rmw_request_id_t> request_header,
|
const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
@@ -44,9 +44,7 @@ void OBCameraNode::setupCameraCtrlServices() {
|
|||||||
setGainCallback(request, response, stream_index);
|
setGainCallback(request, response, stream_index);
|
||||||
});
|
});
|
||||||
if (stream_index.first == OB_STREAM_COLOR || stream_index.first == OB_STREAM_DEPTH) {
|
if (stream_index.first == OB_STREAM_COLOR || stream_index.first == OB_STREAM_DEPTH) {
|
||||||
service_name = "set/" + stream_name +
|
service_name = "set_" + stream_name + "_auto_exposure";
|
||||||
"/"
|
|
||||||
"auto_exposure";
|
|
||||||
set_auto_exposure_srv_[stream_index] = node_->create_service<SetBool>(
|
set_auto_exposure_srv_[stream_index] = node_->create_service<SetBool>(
|
||||||
service_name, [this, stream_index = stream_index](
|
service_name, [this, stream_index = stream_index](
|
||||||
const std::shared_ptr<rmw_request_id_t> request_header,
|
const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
@@ -59,40 +57,40 @@ void OBCameraNode::setupCameraCtrlServices() {
|
|||||||
}
|
}
|
||||||
set_fan_mode_srv_ = node_->create_service<SetInt32>(
|
set_fan_mode_srv_ = node_->create_service<SetInt32>(
|
||||||
"set_fan_mode", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
"set_fan_mode", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
const std::shared_ptr<SetInt32::Request> request,
|
const std::shared_ptr<SetInt32::Request> request,
|
||||||
std::shared_ptr<SetInt32::Response> response) {
|
std::shared_ptr<SetInt32::Response> response) {
|
||||||
setFanModeCallback(request_header, request, response);
|
setFanModeCallback(request_header, request, response);
|
||||||
});
|
});
|
||||||
set_floor_enable_srv_ = node_->create_service<SetBool>(
|
set_floor_enable_srv_ = node_->create_service<SetBool>(
|
||||||
"set_floor_enable", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
"set_floor_enable", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
const std::shared_ptr<SetBool::Request> request,
|
const std::shared_ptr<SetBool::Request> request,
|
||||||
std::shared_ptr<SetBool::Response> response) {
|
std::shared_ptr<SetBool::Response> response) {
|
||||||
setFloorEnableCallback(request_header, request, response);
|
setFloorEnableCallback(request_header, request, response);
|
||||||
});
|
});
|
||||||
set_laser_enable_srv_ = node_->create_service<SetBool>(
|
set_laser_enable_srv_ = node_->create_service<SetBool>(
|
||||||
"set_laser_enable", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
"set_laser_enable", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
const std::shared_ptr<SetBool::Request> request,
|
const std::shared_ptr<SetBool::Request> request,
|
||||||
std::shared_ptr<SetBool::Response> response) {
|
std::shared_ptr<SetBool::Response> response) {
|
||||||
setLaserEnableCallback(request_header, request, response);
|
setLaserEnableCallback(request_header, request, response);
|
||||||
});
|
});
|
||||||
set_ldp_enable_srv_ = node_->create_service<SetBool>(
|
set_ldp_enable_srv_ = node_->create_service<SetBool>(
|
||||||
"set_ldp_enable", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
"set_ldp_enable", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
const std::shared_ptr<SetBool::Request> request,
|
const std::shared_ptr<SetBool::Request> request,
|
||||||
std::shared_ptr<SetBool::Response> response) {
|
std::shared_ptr<SetBool::Response> response) {
|
||||||
setLdpEnableCallback(request_header, request, response);
|
setLdpEnableCallback(request_header, request, response);
|
||||||
});
|
});
|
||||||
|
|
||||||
get_white_balance_srv_ = node_->create_service<GetInt32>(
|
get_white_balance_srv_ = node_->create_service<GetInt32>(
|
||||||
"get/white_balance", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
"get_white_balance", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
const std::shared_ptr<GetInt32::Request> request,
|
const std::shared_ptr<GetInt32::Request> request,
|
||||||
std::shared_ptr<GetInt32::Response> response) {
|
std::shared_ptr<GetInt32::Response> response) {
|
||||||
getWhiteBalanceCallback(request_header, request, response);
|
getWhiteBalanceCallback(request_header, request, response);
|
||||||
});
|
});
|
||||||
|
|
||||||
set_white_balance_srv_ = node_->create_service<SetInt32>(
|
set_white_balance_srv_ = node_->create_service<SetInt32>(
|
||||||
"set/white_balance", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
"set_white_balance", [this](const std::shared_ptr<rmw_request_id_t> request_header,
|
||||||
const std::shared_ptr<SetInt32::Request> request,
|
const std::shared_ptr<SetInt32::Request> request,
|
||||||
std::shared_ptr<SetInt32::Response> response) {
|
std::shared_ptr<SetInt32::Response> response) {
|
||||||
setWhiteBalanceCallback(request_header, request, response);
|
setWhiteBalanceCallback(request_header, request, response);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -101,19 +99,28 @@ void OBCameraNode::setExposureCallback(const std::shared_ptr<SetInt32::Request>&
|
|||||||
std::shared_ptr<SetInt32::Response>& response,
|
std::shared_ptr<SetInt32::Response>& response,
|
||||||
const stream_index_pair& stream_index) {
|
const stream_index_pair& stream_index) {
|
||||||
auto stream = stream_index.first;
|
auto stream = stream_index.first;
|
||||||
switch (stream) {
|
try {
|
||||||
case OB_STREAM_IR:
|
switch (stream) {
|
||||||
device_->setIntProperty(OB_PROP_IR_EXPOSURE_INT, request->data);
|
case OB_STREAM_IR:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_IR_EXPOSURE_INT, request->data);
|
||||||
case OB_STREAM_DEPTH:
|
break;
|
||||||
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, request->data);
|
case OB_STREAM_DEPTH:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, request->data);
|
||||||
case OB_STREAM_COLOR:
|
break;
|
||||||
device_->setIntProperty(OB_PROP_COLOR_EXPOSURE_INT, request->data);
|
case OB_STREAM_COLOR:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_COLOR_EXPOSURE_INT, request->data);
|
||||||
default:
|
break;
|
||||||
RCLCPP_ERROR(logger_, "%s NOT a video stream", __FUNCTION__);
|
default:
|
||||||
break;
|
RCLCPP_ERROR(logger_, "%s NOT a video stream", __FUNCTION__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
RCLCPP_ERROR(logger_, "%s unknown error %d", __FUNCTION__, __LINE__);
|
||||||
|
response->message = "unknown error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,19 +128,27 @@ void OBCameraNode::getGainCallback(const std::shared_ptr<GetInt32::Request>& req
|
|||||||
std::shared_ptr<GetInt32::Response>& response,
|
std::shared_ptr<GetInt32::Response>& response,
|
||||||
const stream_index_pair& stream_index) {
|
const stream_index_pair& stream_index) {
|
||||||
auto stream = stream_index.first;
|
auto stream = stream_index.first;
|
||||||
switch (stream) {
|
try {
|
||||||
case OB_STREAM_IR:
|
switch (stream) {
|
||||||
response->data = device_->getIntProperty(OB_PROP_IR_GAIN_INT);
|
case OB_STREAM_IR:
|
||||||
break;
|
response->data = device_->getIntProperty(OB_PROP_IR_GAIN_INT);
|
||||||
case OB_STREAM_DEPTH:
|
break;
|
||||||
response->data = device_->getIntProperty(OB_PROP_DEPTH_GAIN_INT);
|
case OB_STREAM_DEPTH:
|
||||||
break;
|
response->data = device_->getIntProperty(OB_PROP_DEPTH_GAIN_INT);
|
||||||
case OB_STREAM_COLOR:
|
break;
|
||||||
response->data = device_->getIntProperty(OB_PROP_COLOR_GAIN_INT);
|
case OB_STREAM_COLOR:
|
||||||
break;
|
response->data = device_->getIntProperty(OB_PROP_COLOR_GAIN_INT);
|
||||||
default:
|
break;
|
||||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
default:
|
||||||
break;
|
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,32 +156,56 @@ void OBCameraNode::setGainCallback(const std::shared_ptr<SetInt32 ::Request>& re
|
|||||||
std::shared_ptr<SetInt32::Response>& response,
|
std::shared_ptr<SetInt32::Response>& response,
|
||||||
const stream_index_pair& stream_index) {
|
const stream_index_pair& stream_index) {
|
||||||
auto stream = stream_index.first;
|
auto stream = stream_index.first;
|
||||||
switch (stream) {
|
try {
|
||||||
case OB_STREAM_IR:
|
switch (stream) {
|
||||||
device_->setIntProperty(OB_PROP_IR_GAIN_INT, request->data);
|
case OB_STREAM_IR:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_IR_GAIN_INT, request->data);
|
||||||
case OB_STREAM_DEPTH:
|
break;
|
||||||
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, request->data);
|
case OB_STREAM_DEPTH:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_DEPTH_GAIN_INT, request->data);
|
||||||
case OB_STREAM_COLOR:
|
break;
|
||||||
device_->setIntProperty(OB_PROP_COLOR_GAIN_INT, request->data);
|
case OB_STREAM_COLOR:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_COLOR_GAIN_INT, request->data);
|
||||||
default:
|
break;
|
||||||
RCLCPP_ERROR(logger_, "%s NOT a video stream", __FUNCTION__);
|
default:
|
||||||
break;
|
RCLCPP_ERROR(logger_, "%s NOT a video stream", __FUNCTION__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBCameraNode::getWhiteBalanceCallback(const std::shared_ptr<rmw_request_id_t>& request_header,
|
void OBCameraNode::getWhiteBalanceCallback(const std::shared_ptr<rmw_request_id_t>& request_header,
|
||||||
const std::shared_ptr<GetInt32::Request>& request,
|
const std::shared_ptr<GetInt32::Request>& request,
|
||||||
std::shared_ptr<GetInt32::Response>& response) {
|
std::shared_ptr<GetInt32::Response>& response) {
|
||||||
response->data = device_->getIntProperty(OB_PROP_COLOR_WHITE_BALANCE_INT);
|
try {
|
||||||
|
response->data = device_->getIntProperty(OB_PROP_COLOR_WHITE_BALANCE_INT);
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBCameraNode::setWhiteBalanceCallback(const std::shared_ptr<rmw_request_id_t>& request_header,
|
void OBCameraNode::setWhiteBalanceCallback(const std::shared_ptr<rmw_request_id_t>& request_header,
|
||||||
const std::shared_ptr<SetInt32 ::Request>& request,
|
const std::shared_ptr<SetInt32 ::Request>& request,
|
||||||
std::shared_ptr<SetInt32 ::Response>& response) {
|
std::shared_ptr<SetInt32 ::Response>& response) {
|
||||||
device_->setIntProperty(OB_PROP_COLOR_WHITE_BALANCE_INT, request->data);
|
try {
|
||||||
|
device_->setIntProperty(OB_PROP_COLOR_WHITE_BALANCE_INT, request->data);
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBCameraNode::setAutoExposureCallback(
|
void OBCameraNode::setAutoExposureCallback(
|
||||||
@@ -174,19 +213,27 @@ void OBCameraNode::setAutoExposureCallback(
|
|||||||
std::shared_ptr<std_srvs::srv::SetBool::Response>& response,
|
std::shared_ptr<std_srvs::srv::SetBool::Response>& response,
|
||||||
const stream_index_pair& stream_index) {
|
const stream_index_pair& stream_index) {
|
||||||
auto stream = stream_index.first;
|
auto stream = stream_index.first;
|
||||||
switch (stream) {
|
try {
|
||||||
case OB_STREAM_IR:
|
switch (stream) {
|
||||||
response->message = "IR not support set auto exposure";
|
case OB_STREAM_IR:
|
||||||
break;
|
response->message = "IR not support set auto exposure";
|
||||||
case OB_STREAM_DEPTH:
|
break;
|
||||||
device_->setIntProperty(OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL, request->data);
|
case OB_STREAM_DEPTH:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL, request->data);
|
||||||
case OB_STREAM_COLOR:
|
break;
|
||||||
device_->setIntProperty(OB_PROP_COLOR_AUTO_EXPOSURE_BOOL, request->data);
|
case OB_STREAM_COLOR:
|
||||||
break;
|
device_->setIntProperty(OB_PROP_COLOR_AUTO_EXPOSURE_BOOL, request->data);
|
||||||
default:
|
break;
|
||||||
RCLCPP_ERROR(logger_, "%s NOT a video stream", __FUNCTION__);
|
default:
|
||||||
break;
|
RCLCPP_ERROR(logger_, "%s NOT a video stream", __FUNCTION__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,7 +243,15 @@ void OBCameraNode::setFanModeCallback(const std::shared_ptr<rmw_request_id_t>& r
|
|||||||
(void)request_header;
|
(void)request_header;
|
||||||
(void)response;
|
(void)response;
|
||||||
bool fan_mode = request->data;
|
bool fan_mode = request->data;
|
||||||
device_->setBoolProperty(OB_PROP_FAN_WORK_MODE_INT, fan_mode);
|
try {
|
||||||
|
device_->setBoolProperty(OB_PROP_FAN_WORK_MODE_INT, fan_mode);
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBCameraNode::setFloorEnableCallback(
|
void OBCameraNode::setFloorEnableCallback(
|
||||||
@@ -206,7 +261,15 @@ void OBCameraNode::setFloorEnableCallback(
|
|||||||
(void)request_header;
|
(void)request_header;
|
||||||
(void)response;
|
(void)response;
|
||||||
bool floor_enable = request->data;
|
bool floor_enable = request->data;
|
||||||
device_->setBoolProperty(OB_PROP_FLOOD_BOOL, floor_enable);
|
try {
|
||||||
|
device_->setBoolProperty(OB_PROP_FLOOD_BOOL, floor_enable);
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBCameraNode::setLaserEnableCallback(
|
void OBCameraNode::setLaserEnableCallback(
|
||||||
@@ -216,7 +279,15 @@ void OBCameraNode::setLaserEnableCallback(
|
|||||||
(void)request_header;
|
(void)request_header;
|
||||||
(void)response;
|
(void)response;
|
||||||
bool laser_enable = request->data;
|
bool laser_enable = request->data;
|
||||||
device_->setBoolProperty(OB_PROP_LASER_BOOL, laser_enable);
|
try {
|
||||||
|
device_->setBoolProperty(OB_PROP_LASER_BOOL, laser_enable);
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBCameraNode::setLdpEnableCallback(
|
void OBCameraNode::setLdpEnableCallback(
|
||||||
@@ -226,25 +297,41 @@ void OBCameraNode::setLdpEnableCallback(
|
|||||||
(void)request_header;
|
(void)request_header;
|
||||||
(void)response;
|
(void)response;
|
||||||
bool ldp_enable = request->data;
|
bool ldp_enable = request->data;
|
||||||
device_->setBoolProperty(OB_PROP_LDP_BOOL, ldp_enable);
|
try {
|
||||||
|
device_->setBoolProperty(OB_PROP_LDP_BOOL, ldp_enable);
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void OBCameraNode::getExposureCallback(const std::shared_ptr<GetInt32::Request>& request,
|
void OBCameraNode::getExposureCallback(const std::shared_ptr<GetInt32::Request>& request,
|
||||||
std::shared_ptr<GetInt32 ::Response>& response,
|
std::shared_ptr<GetInt32 ::Response>& response,
|
||||||
const stream_index_pair& stream_index) {
|
const stream_index_pair& stream_index) {
|
||||||
auto stream = stream_index.first;
|
auto stream = stream_index.first;
|
||||||
switch (stream) {
|
try {
|
||||||
case OB_STREAM_IR:
|
switch (stream) {
|
||||||
response->data = device_->getIntProperty(OB_PROP_IR_EXPOSURE_INT);
|
case OB_STREAM_IR:
|
||||||
break;
|
response->data = device_->getIntProperty(OB_PROP_IR_EXPOSURE_INT);
|
||||||
case OB_STREAM_DEPTH:
|
break;
|
||||||
response->data = device_->getIntProperty(OB_PROP_DEPTH_EXPOSURE_INT);
|
case OB_STREAM_DEPTH:
|
||||||
break;
|
response->data = device_->getIntProperty(OB_PROP_DEPTH_EXPOSURE_INT);
|
||||||
case OB_STREAM_COLOR:
|
break;
|
||||||
response->data = device_->getIntProperty(OB_PROP_COLOR_EXPOSURE_INT);
|
case OB_STREAM_COLOR:
|
||||||
break;
|
response->data = device_->getIntProperty(OB_PROP_COLOR_EXPOSURE_INT);
|
||||||
default:
|
break;
|
||||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
default:
|
||||||
break;
|
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (const ob::Error& e) {
|
||||||
|
response->message = e.getMessage();
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
response->message = e.what();
|
||||||
|
} catch (...) {
|
||||||
|
response->message = "unknown error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // namespace orbbec_camera
|
} // namespace orbbec_camera
|
||||||
|
|||||||
Reference in New Issue
Block a user