mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-06 21:17:46 +08:00
feat: add support for left and right color streams in camera control services
This commit is contained in:
@@ -263,12 +263,12 @@ void OBCameraNode::setupCameraCtrlServices() {
|
||||
});
|
||||
set_point_cloud_decimation_srv_ = node_->create_service<SetInt32>(
|
||||
"set_point_cloud_decimation", [this](const std::shared_ptr<SetInt32::Request> request,
|
||||
std::shared_ptr<SetInt32::Response> response) {
|
||||
std::shared_ptr<SetInt32::Response> response) {
|
||||
setPointCloudDecimationCallback(request, response);
|
||||
});
|
||||
get_point_cloud_decimation_srv_ = node_->create_service<GetInt32>(
|
||||
"get_point_cloud_decimation", [this](const std::shared_ptr<GetInt32::Request> request,
|
||||
std::shared_ptr<GetInt32::Response> response) {
|
||||
std::shared_ptr<GetInt32::Response> response) {
|
||||
getPointCloudDecimationCallback(request, response);
|
||||
});
|
||||
}
|
||||
@@ -308,10 +308,10 @@ void OBCameraNode::setPointCloudDecimationCallback(
|
||||
try {
|
||||
point_cloud_decimation_filter_factor_ = request->data;
|
||||
RCLCPP_INFO_STREAM(logger_, "Set point_cloud_decimation_filter_factor to "
|
||||
<< point_cloud_decimation_filter_factor_);
|
||||
<< point_cloud_decimation_filter_factor_);
|
||||
response->success = true;
|
||||
response->message = "Point cloud decimation factor updated successfully";
|
||||
} catch (const std::exception &e) {
|
||||
} catch (const std::exception& e) {
|
||||
response->success = false;
|
||||
response->message = std::string("Failed to set decimation factor: ") + e.what();
|
||||
RCLCPP_ERROR_STREAM(logger_, response->message);
|
||||
@@ -371,6 +371,8 @@ void OBCameraNode::setExposureCallback(const std::shared_ptr<SetInt32::Request>&
|
||||
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, request->data);
|
||||
break;
|
||||
case OB_STREAM_COLOR:
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
device_->setIntProperty(OB_PROP_COLOR_EXPOSURE_INT, request->data);
|
||||
break;
|
||||
default:
|
||||
@@ -407,6 +409,8 @@ void OBCameraNode::getGainCallback(const std::shared_ptr<GetInt32::Request>& req
|
||||
response->data = device_->getIntProperty(OB_PROP_DEPTH_GAIN_INT);
|
||||
break;
|
||||
case OB_STREAM_COLOR:
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
response->data = device_->getIntProperty(OB_PROP_COLOR_GAIN_INT);
|
||||
break;
|
||||
default:
|
||||
@@ -442,6 +446,8 @@ void OBCameraNode::setGainCallback(const std::shared_ptr<SetInt32 ::Request>& re
|
||||
prop_id = OB_PROP_DEPTH_GAIN_INT;
|
||||
break;
|
||||
case OB_STREAM_COLOR:
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
prop_id = OB_PROP_COLOR_GAIN_INT;
|
||||
break;
|
||||
default:
|
||||
@@ -517,6 +523,8 @@ void OBCameraNode::setAeRoiCallback(const std::shared_ptr<SetArrays ::Request>&
|
||||
<< ", Top: " << config.y0_top << ", Bottom: " << config.y1_bottom << " ]");
|
||||
break;
|
||||
case OB_STREAM_COLOR:
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
config.x0_left = (static_cast<short int>(request->data_param[0]) < 0)
|
||||
? 0
|
||||
: static_cast<short int>(request->data_param[0]);
|
||||
@@ -667,6 +675,8 @@ void OBCameraNode::setAutoExposureCallback(
|
||||
prop_id = OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL;
|
||||
break;
|
||||
case OB_STREAM_COLOR:
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
prop_id = OB_PROP_COLOR_AUTO_EXPOSURE_BOOL;
|
||||
break;
|
||||
default:
|
||||
@@ -813,6 +823,8 @@ void OBCameraNode::getExposureCallback(const std::shared_ptr<GetInt32::Request>&
|
||||
response->data = device_->getIntProperty(OB_PROP_DEPTH_EXPOSURE_INT);
|
||||
break;
|
||||
case OB_STREAM_COLOR:
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
response->data = device_->getIntProperty(OB_PROP_COLOR_EXPOSURE_INT);
|
||||
break;
|
||||
default:
|
||||
@@ -900,6 +912,12 @@ void OBCameraNode::setMirrorCallback(const std::shared_ptr<SetBool::Request>& re
|
||||
case OB_STREAM_COLOR:
|
||||
device_->setBoolProperty(OB_PROP_COLOR_MIRROR_BOOL, request->data);
|
||||
break;
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
device_->setBoolProperty(OB_PROP_COLOR_LEFT_MIRROR_BOOL, request->data);
|
||||
break;
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
device_->setBoolProperty(OB_PROP_COLOR_RIGHT_MIRROR_BOOL, request->data);
|
||||
break;
|
||||
default:
|
||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||
break;
|
||||
@@ -939,6 +957,12 @@ void OBCameraNode::setFlipCallback(const std::shared_ptr<SetBool::Request>& requ
|
||||
case OB_STREAM_COLOR:
|
||||
device_->setBoolProperty(OB_PROP_COLOR_FLIP_BOOL, request->data);
|
||||
break;
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
device_->setBoolProperty(OB_PROP_COLOR_LEFT_FLIP_BOOL, request->data);
|
||||
break;
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
device_->setBoolProperty(OB_PROP_COLOR_RIGHT_FLIP_BOOL, request->data);
|
||||
break;
|
||||
default:
|
||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||
break;
|
||||
@@ -978,6 +1002,12 @@ void OBCameraNode::setRotationCallback(const std::shared_ptr<SetInt32::Request>&
|
||||
case OB_STREAM_COLOR:
|
||||
device_->setIntProperty(OB_PROP_COLOR_ROTATE_INT, request->data);
|
||||
break;
|
||||
case OB_STREAM_COLOR_LEFT:
|
||||
device_->setIntProperty(OB_PROP_COLOR_LEFT_ROTATE_INT, request->data);
|
||||
break;
|
||||
case OB_STREAM_COLOR_RIGHT:
|
||||
device_->setIntProperty(OB_PROP_COLOR_RIGHT_ROTATE_INT, request->data);
|
||||
break;
|
||||
default:
|
||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user