From 8a669ac35a568591fb83bb8688d36c1f6f2c5254 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:23:02 +0800 Subject: [PATCH] fix: figure_resource --- unilabos/ros/nodes/base_device_node.py | 2 +- unilabos/ros/nodes/resource_tracker.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/unilabos/ros/nodes/base_device_node.py b/unilabos/ros/nodes/base_device_node.py index 76dd7649..872bc62e 100644 --- a/unilabos/ros/nodes/base_device_node.py +++ b/unilabos/ros/nodes/base_device_node.py @@ -697,7 +697,7 @@ class BaseROS2DeviceNode(Node, Generic[T]): else: final_resource = [convert_resources_to_type([i], final_type)[0] for i in resources_list] try: - action_kwargs[k] = self.resource_tracker.figure_resource(final_resource) + action_kwargs[k] = self.resource_tracker.figure_resource(final_resource, try_mode=True) except Exception as e: self.lab_logger().error(f"物料实例获取失败: {e}\n{traceback.format_exc()}") error_skip = True diff --git a/unilabos/ros/nodes/resource_tracker.py b/unilabos/ros/nodes/resource_tracker.py index 45355f0d..a96c4459 100644 --- a/unilabos/ros/nodes/resource_tracker.py +++ b/unilabos/ros/nodes/resource_tracker.py @@ -36,9 +36,9 @@ class DeviceNodeResourceTracker(object): def figure_resource(self, query_resource, try_mode=False): if isinstance(query_resource, list): - return [self.figure_resource(r) for r in query_resource] + return [self.figure_resource(r, try_mode) for r in query_resource] elif isinstance(query_resource, dict) and "id" not in query_resource and "name" not in query_resource: # 临时处理,要删除的,driver有太多类型错误标注 - return [self.figure_resource(r) for r in query_resource.values()] + return [self.figure_resource(r, try_mode) for r in query_resource.values()] res_id = query_resource.id if hasattr(query_resource, "id") else (query_resource.get("id") if isinstance(query_resource, dict) else None) res_name = query_resource.name if hasattr(query_resource, "name") else (query_resource.get("name") if isinstance(query_resource, dict) else None) res_identifier = res_id if res_id else res_name