From b27318ed7b5836811121037971c15e2a0f34248b Mon Sep 17 00:00:00 2001 From: slz Date: Wed, 25 Mar 2026 14:17:14 +0800 Subject: [PATCH] feat: add filter validation in setFilterCallback to ensure supported filters --- orbbec_camera/src/ob_camera_node.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/orbbec_camera/src/ob_camera_node.cpp b/orbbec_camera/src/ob_camera_node.cpp index 14e87155..4d653540 100644 --- a/orbbec_camera/src/ob_camera_node.cpp +++ b/orbbec_camera/src/ob_camera_node.cpp @@ -4462,6 +4462,15 @@ orbbec_camera_msgs::msg::IMUInfo OBCameraNode::createIMUInfo( void OBCameraNode::setFilterCallback(const std::shared_ptr &request, std::shared_ptr &response) { try { + if (std::find_if(depth_filter_list_.begin(), depth_filter_list_.end(), + [&request](const auto &filter) { + return filter->type() == request->filter_name; + }) == depth_filter_list_.end()) { + response->success = false; + response->message = "Filter '" + request->filter_name + "' is not supported by this device"; + return; + } + RCLCPP_INFO_STREAM(logger_, "filter_name: " << request->filter_name << " filter_enable: " << (request->filter_enable ? "true" : "false")); auto it = std::remove_if(depth_filter_list_.begin(), depth_filter_list_.end(),