From 6c471553c4ba38ed44352944699472667e0588b8 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Mon, 16 Jun 2025 12:45:26 +0800 Subject: [PATCH] fix container value add parent_name to edge device id --- .../comprehensive_protocol/comprehensive_station.json | 9 +++------ unilabos/registry/devices/virtual_device.yaml | 1 - unilabos/ros/nodes/presets/host_node.py | 5 +++++ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/test/experiments/comprehensive_protocol/comprehensive_station.json b/test/experiments/comprehensive_protocol/comprehensive_station.json index e6cc20e..4fc21db 100644 --- a/test/experiments/comprehensive_protocol/comprehensive_station.json +++ b/test/experiments/comprehensive_protocol/comprehensive_station.json @@ -486,20 +486,17 @@ "name": "气源", "children": [], "parent": "ComprehensiveProtocolStation", - "type": "device", + "type": "container", "class": "container", "position": { "x": 650, "y": 150, "z": 0 }, - "config": { + "config": {}, + "data": { "gas_type": "nitrogen", "max_pressure": 5.0 - }, - "data": { - "status": "Off", - "current_pressure": 0.0 } }, { diff --git a/unilabos/registry/devices/virtual_device.yaml b/unilabos/registry/devices/virtual_device.yaml index 47b7b1b..8d9aabc 100644 --- a/unilabos/registry/devices/virtual_device.yaml +++ b/unilabos/registry/devices/virtual_device.yaml @@ -543,7 +543,6 @@ virtual_transfer_pump: current_volume: Float64 max_volume: Float64 transfer_rate: Float64 - from_vessel: String action_value_mappings: transfer: type: Transfer diff --git a/unilabos/ros/nodes/presets/host_node.py b/unilabos/ros/nodes/presets/host_node.py index 6f52b4c..266fa75 100644 --- a/unilabos/ros/nodes/presets/host_node.py +++ b/unilabos/ros/nodes/presets/host_node.py @@ -193,15 +193,20 @@ class HostNode(BaseROS2DeviceNode): ) resource_with_parent_name = [] resource_ids_to_instance = {i["id"]: i for i in resources_config} + resource_name_to_with_parent_name = {} for res in resources_config: if res.get("parent") and res.get("type") == "device" and res.get("class"): parent_id = res.get("parent") parent_res = resource_ids_to_instance[parent_id] if parent_res.get("type") == "device" and parent_res.get("class"): resource_with_parent_name.append(copy.deepcopy(res)) + resource_name_to_with_parent_name[resource_with_parent_name[-1]["id"]] = f"{parent_res['id']}/{res['id']}" resource_with_parent_name[-1]["id"] = f"{parent_res['id']}/{res['id']}" continue resource_with_parent_name.append(copy.deepcopy(res)) + for edge in self.resources_edge_config: + edge["source"] = resource_name_to_with_parent_name.get(edge.get("source"), edge.get("source")) + edge["target"] = resource_name_to_with_parent_name.get(edge.get("target"), edge.get("target")) try: for bridge in self.bridges: if hasattr(bridge, "resource_add"):