[service] add set_sequence_id_filter_enable

This commit is contained in:
zhuangzi
2025-01-17 16:06:31 +08:00
parent dd1e833c33
commit 3937f4f26a
2 changed files with 40 additions and 1 deletions
@@ -299,6 +299,9 @@ class OBCameraNode {
void setDecimationFilterEnableCallback(
const std::shared_ptr<std_srvs::srv::SetBool::Request>& request,
std::shared_ptr<std_srvs::srv::SetBool::Response>& response);
void setSequenceIdFilterEnableCallback(
const std::shared_ptr<std_srvs::srv::SetBool::Request>& request,
std::shared_ptr<std_srvs::srv::SetBool::Response>& response);
bool toggleSensor(const stream_index_pair& stream_index, bool enabled, std::string& msg);
@@ -454,6 +457,7 @@ class OBCameraNode {
rclcpp::Service<SetInt32>::SharedPtr set_interleaver_laser_sync_srv_;
rclcpp::Service<std_srvs::srv::SetBool>::SharedPtr set_sync_host_time_srv_;
rclcpp::Service<std_srvs::srv::SetBool>::SharedPtr set_decimation_filter_enable_srv_;
rclcpp::Service<std_srvs::srv::SetBool>::SharedPtr set_sequence_id_filter_enable_srv_;
bool enable_sync_output_accel_gyro_ = false;
bool publish_tf_ = false;
+36 -1
View File
@@ -189,6 +189,11 @@ void OBCameraNode::setupCameraCtrlServices() {
std::shared_ptr<SetBool::Response> response) {
setDecimationFilterEnableCallback(request, response);
});
set_sequence_id_filter_enable_srv_ = node_->create_service<SetBool>(
"set_sequence_id_filter_enable", [this](const std::shared_ptr<SetBool::Request> request,
std::shared_ptr<SetBool::Response> response) {
setSequenceIdFilterEnableCallback(request, response);
});
}
void OBCameraNode::setExposureCallback(const std::shared_ptr<SetInt32::Request>& request,
@@ -854,10 +859,40 @@ void OBCameraNode::setDecimationFilterEnableCallback(
}
} else {
decimation_filter_scale_ = -1;
node_->set_parameter(rclcpp::Parameter("decimation_filter_scale", decimation_filter_scale_));
}
setupDepthPostProcessFilter();
node_->set_parameter(rclcpp::Parameter("enable_decimation_filter", enable_decimation_filter_));
node_->set_parameter(rclcpp::Parameter("decimation_filter_scale", decimation_filter_scale_));
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::setSequenceIdFilterEnableCallback(
const std::shared_ptr<std_srvs::srv::SetBool::Request>& request,
std::shared_ptr<std_srvs::srv::SetBool::Response>& response) {
try {
enable_sequence_id_filter_ = request->data;
if (enable_sequence_id_filter_) {
sequence_id_filter_id_ = node_->get_parameter("sequence_id_filter_id").as_int();
if (sequence_id_filter_id_ == -1) {
RCLCPP_WARN(logger_, "Please configure the parameter 'sequence_id_filter_id'");
return;
}
} else {
sequence_id_filter_id_ = -1;
node_->set_parameter(rclcpp::Parameter("sequence_id_filter_id", sequence_id_filter_id_));
}
setupDepthPostProcessFilter();
node_->set_parameter(
rclcpp::Parameter("enable_sequence_id_filter", enable_sequence_id_filter_));
response->success = true;
} catch (const ob::Error& e) {
response->message = e.getMessage();