diff --git a/unilabos/ros/nodes/base_device_node.py b/unilabos/ros/nodes/base_device_node.py index febc95f2..e52ea80d 100644 --- a/unilabos/ros/nodes/base_device_node.py +++ b/unilabos/ros/nodes/base_device_node.py @@ -705,8 +705,8 @@ class BaseROS2DeviceNode(Node, Generic[T]): return { "success": True, "action": "remove", - "removed_plr": found_plr_resources, - "removed_other": other_plr_resources, + # "removed_plr": found_plr_resources, + # "removed_other": other_plr_resources, } def _handle_update( @@ -736,13 +736,11 @@ class BaseROS2DeviceNode(Node, Generic[T]): self.lab_logger().info(f"物料改名操作:{old_name} -> {new_name}") # 收集所有相关的uuid(包括子节点) - all_uuids = self.resource_tracker.loop_gather_uuid(original_instance) - _handle_remove(all_uuids) + _handle_remove([original_instance.unilabos_uuid]) original_instance.name = new_name _handle_add([original_instance], tree_set, additional_add_params) self.lab_logger().info(f"物料改名完成:{old_name} -> {new_name}") - continue # 常规更新:不涉及改名 original_parent_resource = original_instance.parent @@ -827,7 +825,7 @@ class BaseROS2DeviceNode(Node, Generic[T]): # 返回处理结果 result_json = {"results": results, "total": len(data)} - res.response = json.dumps(result_json, ensure_ascii=False) + res.response = json.dumps(result_json, ensure_ascii=False, cls=TypeEncoder) self.lab_logger().info(f"[Resource Tree Update] Completed processing {len(data)} operations") except json.JSONDecodeError as e: diff --git a/unilabos/ros/nodes/presets/host_node.py b/unilabos/ros/nodes/presets/host_node.py index 5c43a5d0..7a8806d4 100644 --- a/unilabos/ros/nodes/presets/host_node.py +++ b/unilabos/ros/nodes/presets/host_node.py @@ -165,29 +165,16 @@ class HostNode(BaseROS2DeviceNode): # resources_config 的 root node 是 # # 创建反向映射:new_uuid -> old_uuid # reverse_uuid_mapping = {new_uuid: old_uuid for old_uuid, new_uuid in uuid_mapping.items()} - # for tree in resources_config.trees: - # node = tree.root_node - # if node.res_content.type == "device": - # if node.res_content.id == "host_node": - # continue - # # slave节点走c2s更新接口,拿到add自行update uuid - # device_tracker = self.devices_instances[node.res_content.id].resource_tracker - # old_uuid = reverse_uuid_mapping.get(node.res_content.uuid) - # if old_uuid: - # # 找到旧UUID,使用UUID查找 - # resource_instance = device_tracker.uuid_to_resources.get(old_uuid) - # else: - # # 未找到旧UUID,使用name查找 - # resource_instance = device_tracker.figure_resource( - # {"name": node.res_content.name} - # ) - # device_tracker.loop_update_uuid(resource_instance, uuid_mapping) - # else: - # try: - # for plr_resource in ResourceTreeSet([tree]).to_plr_resources(): - # self.resource_tracker.add_resource(plr_resource) - # except Exception as ex: - # self.lab_logger().warning("[Host Node-Resource] 根节点物料序列化失败!") + for tree in resources_config.trees: + node = tree.root_node + if node.res_content.type == "device": + continue + else: + try: + for plr_resource in ResourceTreeSet([tree]).to_plr_resources(): + self._resource_tracker.add_resource(plr_resource) + except Exception as ex: + self.lab_logger().warning(f"[Host Node-Resource] 根节点物料{tree}序列化失败!") except Exception as ex: logger.error(f"[Host Node-Resource] 添加物料出错!\n{traceback.format_exc()}") # 初始化Node基类,传递空参数覆盖列表