From 622edbde1ee59dda16071d0c6e2b36b961aea626 Mon Sep 17 00:00:00 2001 From: KCFeng425 <2100011801@stu.pku.edu.cn> Date: Wed, 18 Jun 2025 11:05:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80=E5=A5=97?= =?UTF-8?q?=E7=AE=80=E6=98=93=E5=8F=8C=E5=85=AB=E9=80=9A=E9=98=80=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E7=AB=99JSON=EF=BC=8C=E4=BA=B2=E6=B5=8B=E8=83=BD?= =?UTF-8?q?=E8=B7=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dual_valve_pump_station.json | 367 ++++++++++++++++++ 1 file changed, 367 insertions(+) create mode 100644 test/experiments/mock_protocol/dual_valve_pump_station.json diff --git a/test/experiments/mock_protocol/dual_valve_pump_station.json b/test/experiments/mock_protocol/dual_valve_pump_station.json new file mode 100644 index 0000000..61520ee --- /dev/null +++ b/test/experiments/mock_protocol/dual_valve_pump_station.json @@ -0,0 +1,367 @@ +{ + "nodes": [ + { + "id": "DualValvePumpStation", + "name": "双阀门泵站", + "children": [ + "transfer_pump_1", + "transfer_pump_2", + "multiway_valve_1", + "multiway_valve_2", + "flask_DMF", + "flask_ethyl_acetate", + "flask_methanol", + "flask_air", + "main_reactor", + "waste_workup", + "collection_bottle_1" + ], + "parent": null, + "type": "device", + "class": "workstation", + "position": { + "x": 500, + "y": 200, + "z": 0 + }, + "config": { + "protocol_type": ["PumpTransferProtocol"] + }, + "data": {} + }, + { + "id": "transfer_pump_1", + "name": "转移泵1", + "children": [], + "parent": "DualValvePumpStation", + "type": "device", + "class": "virtual_transfer_pump", + "position": { + "x": 300, + "y": 300, + "z": 0 + }, + "config": { + "port": "VIRTUAL_PUMP1", + "max_volume": 25.0, + "transfer_rate": 5.0 + }, + "data": { + "position": 0.0, + "status": "Idle" + } + }, + { + "id": "transfer_pump_2", + "name": "转移泵2", + "children": [], + "parent": "DualValvePumpStation", + "type": "device", + "class": "virtual_transfer_pump", + "position": { + "x": 700, + "y": 300, + "z": 0 + }, + "config": { + "port": "VIRTUAL_PUMP2", + "max_volume": 25.0, + "transfer_rate": 5.0 + }, + "data": { + "position": 0.0, + "status": "Idle" + } + }, + { + "id": "multiway_valve_1", + "name": "第一个八通阀", + "children": [], + "parent": "DualValvePumpStation", + "type": "device", + "class": "virtual_multiway_valve", + "position": { + "x": 300, + "y": 400, + "z": 0 + }, + "config": { + "port": "VIRTUAL_VALVE1", + "positions": 8 + }, + "data": { + "current_position": 1 + } + }, + { + "id": "multiway_valve_2", + "name": "第二个八通阀", + "children": [], + "parent": "DualValvePumpStation", + "type": "device", + "class": "virtual_multiway_valve", + "position": { + "x": 700, + "y": 400, + "z": 0 + }, + "config": { + "port": "VIRTUAL_VALVE2", + "positions": 8 + }, + "data": { + "current_position": 1 + } + }, + { + "id": "flask_DMF", + "name": "DMF试剂瓶", + "children": [], + "parent": "DualValvePumpStation", + "type": "container", + "class": null, + "position": { + "x": 100, + "y": 500, + "z": 0 + }, + "config": { + "max_volume": 1000.0 + }, + "data": { + "liquid": [ + { + "liquid_type": "DMF", + "liquid_volume": 800.0 + } + ] + } + }, + { + "id": "flask_ethyl_acetate", + "name": "乙酸乙酯试剂瓶", + "children": [], + "parent": "DualValvePumpStation", + "type": "container", + "class": null, + "position": { + "x": 200, + "y": 500, + "z": 0 + }, + "config": { + "max_volume": 1000.0 + }, + "data": { + "liquid": [ + { + "liquid_type": "ethyl_acetate", + "liquid_volume": 800.0 + } + ] + } + }, + { + "id": "flask_methanol", + "name": "甲醇试剂瓶", + "children": [], + "parent": "DualValvePumpStation", + "type": "container", + "class": null, + "position": { + "x": 300, + "y": 500, + "z": 0 + }, + "config": { + "max_volume": 1000.0 + }, + "data": { + "liquid": [ + { + "liquid_type": "methanol", + "liquid_volume": 800.0 + } + ] + } + }, + { + "id": "flask_air", + "name": "空气瓶", + "children": [], + "parent": "DualValvePumpStation", + "type": "container", + "class": null, + "position": { + "x": 400, + "y": 500, + "z": 0 + }, + "config": { + "max_volume": 1000.0 + }, + "data": { + "liquid": [] + } + }, + { + "id": "main_reactor", + "name": "主反应器", + "children": [], + "parent": "DualValvePumpStation", + "type": "container", + "class": null, + "position": { + "x": 600, + "y": 500, + "z": 0 + }, + "config": { + "max_volume": 2000.0 + }, + "data": { + "liquid": [] + } + }, + { + "id": "waste_workup", + "name": "废液处理瓶", + "children": [], + "parent": "DualValvePumpStation", + "type": "container", + "class": null, + "position": { + "x": 700, + "y": 500, + "z": 0 + }, + "config": { + "max_volume": 2000.0 + }, + "data": { + "liquid": [] + } + }, + { + "id": "collection_bottle_1", + "name": "收集瓶1", + "children": [], + "parent": "DualValvePumpStation", + "type": "container", + "class": null, + "position": { + "x": 800, + "y": 500, + "z": 0 + }, + "config": { + "max_volume": 1000.0 + }, + "data": { + "liquid": [] + } + } + ], + "links": [ + { + "id": "link_pump1_valve1", + "source": "transfer_pump_1", + "target": "multiway_valve_1", + "type": "fluid", + "port": { + "transfer_pump_1": "transferpump", + "multiway_valve_1": "transferpump" + } + }, + { + "id": "link_pump2_valve2", + "source": "transfer_pump_2", + "target": "multiway_valve_2", + "type": "fluid", + "port": { + "transfer_pump_2": "transferpump", + "multiway_valve_2": "transferpump" + } + }, + { + "id": "link_valve1_valve2", + "source": "multiway_valve_1", + "target": "multiway_valve_2", + "type": "fluid", + "port": { + "multiway_valve_1": "8", + "multiway_valve_2": "1" + } + }, + { + "id": "link_valve1_air", + "source": "multiway_valve_1", + "target": "flask_air", + "type": "fluid", + "port": { + "multiway_valve_1": "1", + "flask_air": "top" + } + }, + { + "id": "link_valve1_DMF", + "source": "multiway_valve_1", + "target": "flask_DMF", + "type": "fluid", + "port": { + "multiway_valve_1": "2", + "flask_DMF": "outlet" + } + }, + { + "id": "link_valve1_ethyl_acetate", + "source": "multiway_valve_1", + "target": "flask_ethyl_acetate", + "type": "fluid", + "port": { + "multiway_valve_1": "3", + "flask_ethyl_acetate": "outlet" + } + }, + { + "id": "link_valve1_methanol", + "source": "multiway_valve_1", + "target": "flask_methanol", + "type": "fluid", + "port": { + "multiway_valve_1": "4", + "flask_methanol": "outlet" + } + }, + { + "id": "link_valve2_reactor", + "source": "multiway_valve_2", + "target": "main_reactor", + "type": "fluid", + "port": { + "multiway_valve_2": "5", + "main_reactor": "inlet" + } + }, + { + "id": "link_valve2_waste", + "source": "multiway_valve_2", + "target": "waste_workup", + "type": "fluid", + "port": { + "multiway_valve_2": "6", + "waste_workup": "inlet" + } + }, + { + "id": "link_valve2_collection", + "source": "multiway_valve_2", + "target": "collection_bottle_1", + "type": "fluid", + "port": { + "multiway_valve_2": "7", + "collection_bottle_1": "inlet" + } + } + ] +} \ No newline at end of file