mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-04 12:07:46 +08:00
fix: align set_filter response handling
This commit is contained in:
@@ -4778,6 +4778,12 @@ orbbec_camera_msgs::msg::IMUInfo OBCameraNode::createIMUInfo(
|
|||||||
void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request> &request,
|
void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request> &request,
|
||||||
std::shared_ptr<SetFilter ::Response> &response) {
|
std::shared_ptr<SetFilter ::Response> &response) {
|
||||||
try {
|
try {
|
||||||
|
response->success = false;
|
||||||
|
response->message.clear();
|
||||||
|
auto fail = [&response](const std::string &msg) {
|
||||||
|
response->success = false;
|
||||||
|
response->message = msg;
|
||||||
|
};
|
||||||
const auto normalized_request_filter_name = normalizeDepthFilterName(request->filter_name);
|
const auto normalized_request_filter_name = normalizeDepthFilterName(request->filter_name);
|
||||||
bool in_recommended_filter_list = false;
|
bool in_recommended_filter_list = false;
|
||||||
{
|
{
|
||||||
@@ -4806,8 +4812,7 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
(is_hardware_noise_removal && hardware_noise_removal_property_writable);
|
(is_hardware_noise_removal && hardware_noise_removal_property_writable);
|
||||||
|
|
||||||
if (!in_recommended_filter_list && !supported_by_writable_property) {
|
if (!in_recommended_filter_list && !supported_by_writable_property) {
|
||||||
response->success = false;
|
fail("Filter '" + request->filter_name + "' is not supported by this device");
|
||||||
response->message = "Filter '" + request->filter_name + "' is not supported by this device";
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5196,14 +5201,17 @@ void OBCameraNode::setFilterCallback(const std::shared_ptr<SetFilter ::Request>
|
|||||||
publishDepthFiltersStatus();
|
publishDepthFiltersStatus();
|
||||||
response->success = true;
|
response->success = true;
|
||||||
} catch (const ob::Error &e) {
|
} catch (const ob::Error &e) {
|
||||||
response->message = orbbec_camera::formatObErrorWithStatus(e);
|
|
||||||
response->success = false;
|
response->success = false;
|
||||||
|
response->message = "Failed to set filter: " + orbbec_camera::formatObErrorWithStatus(e);
|
||||||
|
RCLCPP_ERROR_STREAM(logger_, "Failed to set filter: " << orbbec_camera::formatObErrorWithStatus(e));
|
||||||
} catch (const std::exception &e) {
|
} catch (const std::exception &e) {
|
||||||
response->message = e.what();
|
|
||||||
response->success = false;
|
response->success = false;
|
||||||
|
response->message = std::string("Failed to set filter: ") + e.what();
|
||||||
|
RCLCPP_ERROR_STREAM(logger_, "Failed to set filter: " << e.what());
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
response->message = "unknown error";
|
|
||||||
response->success = false;
|
response->success = false;
|
||||||
|
response->message = "unknown error";
|
||||||
|
RCLCPP_ERROR_STREAM(logger_, "unknown error");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool OBCameraNode::isWriteCustomerDataSuccess() const {
|
bool OBCameraNode::isWriteCustomerDataSuccess() const {
|
||||||
|
|||||||
Reference in New Issue
Block a user