feat: add filter validation in setFilterCallback to ensure supported filters

This commit is contained in:
slz
2026-03-25 14:17:14 +08:00
parent 8d3929ae49
commit b27318ed7b
+9
View File
@@ -4462,6 +4462,15 @@ orbbec_camera_msgs::msg::IMUInfo OBCameraNode::createIMUInfo(
void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request> &request,
std::shared_ptr<SetFilter ::Response> &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(),