From edf7a117cae6bfd9e3b772d5f8090a1e9e584ff8 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Tue, 14 Oct 2025 00:21:16 +0800 Subject: [PATCH] Fix workstation deck & children resource dupe --- unilabos/ros/nodes/resource_tracker.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/unilabos/ros/nodes/resource_tracker.py b/unilabos/ros/nodes/resource_tracker.py index bd5b9184..4d59ffd0 100644 --- a/unilabos/ros/nodes/resource_tracker.py +++ b/unilabos/ros/nodes/resource_tracker.py @@ -907,6 +907,14 @@ class DeviceNodeResourceTracker(object): for r in self.resources: if id(r) == id(resource): return + uid = None + if isinstance(resource, dict): + uid = resource["uuid"] + else: + uid = getattr(resource, "unilabos_uuid", None) + if uid and uid in self.uuid_to_resources: + self.remove_resource(self.uuid_to_resources[uid]) + logger.warning(f"资源 UUID {uid} 已存在,覆盖为: {resource}") self.resources.append(resource) # 递归收集uuid映射 self._collect_uuid_mapping(resource)