mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2026-02-04 13:25:13 +00:00
refactor: Split tipbox storage into left and right warehouses
This commit is contained in:
@@ -83,11 +83,11 @@ def bioyond_warehouse_reagent_storage(name: str) -> WareHouse:
|
|||||||
category="warehouse",
|
category="warehouse",
|
||||||
)
|
)
|
||||||
|
|
||||||
def bioyond_warehouse_tipbox_storage(name: str) -> WareHouse:
|
def bioyond_warehouse_tipbox_storage_left(name: str) -> WareHouse:
|
||||||
"""创建BioYond站内Tip盒堆栈(A01~B03),用于存放枪头盒"""
|
"""创建BioYond站内Tip盒堆栈左侧部分(A02~B03),2列2行"""
|
||||||
return warehouse_factory(
|
return warehouse_factory(
|
||||||
name=name,
|
name=name,
|
||||||
num_items_x=3, # 3列(01-03)
|
num_items_x=2, # 2列
|
||||||
num_items_y=2, # 2行(A-B)
|
num_items_y=2, # 2行(A-B)
|
||||||
num_items_z=1, # 1层
|
num_items_z=1, # 1层
|
||||||
dx=10.0,
|
dx=10.0,
|
||||||
@@ -97,7 +97,25 @@ def bioyond_warehouse_tipbox_storage(name: str) -> WareHouse:
|
|||||||
item_dy=96.0,
|
item_dy=96.0,
|
||||||
item_dz=120.0,
|
item_dz=120.0,
|
||||||
category="warehouse",
|
category="warehouse",
|
||||||
col_offset=0,
|
col_offset=1, # 从02开始: A02, A03
|
||||||
|
layout="row-major",
|
||||||
|
)
|
||||||
|
|
||||||
|
def bioyond_warehouse_tipbox_storage_right(name: str) -> WareHouse:
|
||||||
|
"""创建BioYond站内Tip盒堆栈右侧部分(A01~B01),1列2行"""
|
||||||
|
return warehouse_factory(
|
||||||
|
name=name,
|
||||||
|
num_items_x=1, # 1列
|
||||||
|
num_items_y=2, # 2行(A-B)
|
||||||
|
num_items_z=1, # 1层
|
||||||
|
dx=10.0,
|
||||||
|
dy=10.0,
|
||||||
|
dz=10.0,
|
||||||
|
item_dx=137.0,
|
||||||
|
item_dy=96.0,
|
||||||
|
item_dz=120.0,
|
||||||
|
category="warehouse",
|
||||||
|
col_offset=0, # 从01开始: A01
|
||||||
layout="row-major",
|
layout="row-major",
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -167,7 +185,7 @@ def bioyond_warehouse_1x4x2(name: str) -> WareHouse:
|
|||||||
|
|
||||||
def bioyond_warehouse_1x2x2(name: str) -> WareHouse:
|
def bioyond_warehouse_1x2x2(name: str) -> WareHouse:
|
||||||
"""创建BioYond 1x2x2仓库(1列×2行×2层)- 旧版本,已弃用
|
"""创建BioYond 1x2x2仓库(1列×2行×2层)- 旧版本,已弃用
|
||||||
|
|
||||||
布局(2层):
|
布局(2层):
|
||||||
层1: A01
|
层1: A01
|
||||||
B01
|
B01
|
||||||
@@ -191,7 +209,7 @@ def bioyond_warehouse_1x2x2(name: str) -> WareHouse:
|
|||||||
|
|
||||||
def bioyond_warehouse_2x2x1(name: str) -> WareHouse:
|
def bioyond_warehouse_2x2x1(name: str) -> WareHouse:
|
||||||
"""创建BioYond 2x2x1仓库(2行×2列×1层)
|
"""创建BioYond 2x2x1仓库(2行×2列×1层)
|
||||||
|
|
||||||
布局:
|
布局:
|
||||||
A01 | A02
|
A01 | A02
|
||||||
B01 | B02
|
B01 | B02
|
||||||
@@ -246,14 +264,14 @@ def bioyond_warehouse_1x3x3(name: str) -> WareHouse:
|
|||||||
|
|
||||||
def bioyond_warehouse_5x3x1(name: str, row_offset: int = 0) -> WareHouse:
|
def bioyond_warehouse_5x3x1(name: str, row_offset: int = 0) -> WareHouse:
|
||||||
"""创建BioYond 5x3x1仓库(5行×3列×1层)
|
"""创建BioYond 5x3x1仓库(5行×3列×1层)
|
||||||
|
|
||||||
标准布局(row_offset=0):
|
标准布局(row_offset=0):
|
||||||
A01 | A02 | A03
|
A01 | A02 | A03
|
||||||
B01 | B02 | B03
|
B01 | B02 | B03
|
||||||
C01 | C02 | C03
|
C01 | C02 | C03
|
||||||
D01 | D02 | D03
|
D01 | D02 | D03
|
||||||
E01 | E02 | E03
|
E01 | E02 | E03
|
||||||
|
|
||||||
带偏移布局(row_offset=5):
|
带偏移布局(row_offset=5):
|
||||||
F01 | F02 | F03
|
F01 | F02 | F03
|
||||||
G01 | G02 | G03
|
G01 | G02 | G03
|
||||||
@@ -281,7 +299,7 @@ def bioyond_warehouse_5x3x1(name: str, row_offset: int = 0) -> WareHouse:
|
|||||||
|
|
||||||
def bioyond_warehouse_3x3x1(name: str) -> WareHouse:
|
def bioyond_warehouse_3x3x1(name: str) -> WareHouse:
|
||||||
"""创建BioYond 3x3x1仓库(3行×3列×1层)
|
"""创建BioYond 3x3x1仓库(3行×3列×1层)
|
||||||
|
|
||||||
布局:
|
布局:
|
||||||
A01 | A02 | A03
|
A01 | A02 | A03
|
||||||
B01 | B02 | B03
|
B01 | B02 | B03
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ from unilabos.resources.bioyond.YB_warehouses import (
|
|||||||
bioyond_warehouse_1x8x4,
|
bioyond_warehouse_1x8x4,
|
||||||
bioyond_warehouse_reagent_storage,
|
bioyond_warehouse_reagent_storage,
|
||||||
# bioyond_warehouse_liquid_preparation,
|
# bioyond_warehouse_liquid_preparation,
|
||||||
bioyond_warehouse_tipbox_storage, # 新增:Tip盒堆栈
|
bioyond_warehouse_tipbox_storage_left, # 新增:Tip盒堆栈(左)
|
||||||
|
bioyond_warehouse_tipbox_storage_right, # 新增:Tip盒堆栈(右)
|
||||||
bioyond_warehouse_density_vial,
|
bioyond_warehouse_density_vial,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -47,16 +48,17 @@ class BIOYOND_PolymerReactionStation_Deck(Deck):
|
|||||||
"堆栈1右": bioyond_warehouse_1x4x4_right("堆栈1右"), # 右侧堆栈: A05~D08
|
"堆栈1右": bioyond_warehouse_1x4x4_right("堆栈1右"), # 右侧堆栈: A05~D08
|
||||||
"站内试剂存放堆栈": bioyond_warehouse_reagent_storage("站内试剂存放堆栈"), # A01~A02
|
"站内试剂存放堆栈": bioyond_warehouse_reagent_storage("站内试剂存放堆栈"), # A01~A02
|
||||||
# "移液站内10%分装液体准备仓库": bioyond_warehouse_liquid_preparation("移液站内10%分装液体准备仓库"), # A01~B04
|
# "移液站内10%分装液体准备仓库": bioyond_warehouse_liquid_preparation("移液站内10%分装液体准备仓库"), # A01~B04
|
||||||
"站内Tip盒堆栈": bioyond_warehouse_tipbox_storage("站内Tip盒堆栈"), # A01~B03, 存放枪头盒.
|
"站内Tip盒堆栈(左)": bioyond_warehouse_tipbox_storage_left("站内Tip盒堆栈(左)"), # A02~B03
|
||||||
|
"站内Tip盒堆栈(右)": bioyond_warehouse_tipbox_storage_right("站内Tip盒堆栈(右)"), # A01~B01
|
||||||
"测量小瓶仓库(测密度)": bioyond_warehouse_density_vial("测量小瓶仓库(测密度)"), # A01~B03
|
"测量小瓶仓库(测密度)": bioyond_warehouse_density_vial("测量小瓶仓库(测密度)"), # A01~B03
|
||||||
}
|
}
|
||||||
self.warehouse_locations = {
|
self.warehouse_locations = {
|
||||||
"堆栈1左": Coordinate(-200.0, 450.0, 0.0), # 左侧位置
|
"堆栈1左": Coordinate(-200.0, 400.0, 0.0), # 左侧位置
|
||||||
"堆栈1右": Coordinate(2350.0, 450.0, 0.0), # 右侧位置
|
"堆栈1右": Coordinate(2350.0, 400.0, 0.0), # 右侧位置
|
||||||
"站内试剂存放堆栈": Coordinate(730.0, 390.0, 0.0),
|
"站内试剂存放堆栈": Coordinate(640.0, 400.0, 0.0),
|
||||||
# "移液站内10%分装液体准备仓库": Coordinate(1200.0, 600.0, 0.0),
|
"站内Tip盒堆栈(左)": Coordinate(300.0, 100.0, 0.0),
|
||||||
"站内Tip盒堆栈": Coordinate(300.0, 150.0, 0.0),
|
"站内Tip盒堆栈(右)": Coordinate(2250.0, 100.0, 0.0), # 向右偏移 2 * item_dx (137.0)
|
||||||
"测量小瓶仓库(测密度)": Coordinate(940.0, 530.0, 0.0),
|
"测量小瓶仓库(测密度)": Coordinate(1000.0, 530.0, 0.0),
|
||||||
}
|
}
|
||||||
|
|
||||||
for warehouse_name, warehouse in self.warehouses.items():
|
for warehouse_name, warehouse in self.warehouses.items():
|
||||||
@@ -89,9 +91,9 @@ class BIOYOND_PolymerPreparationStation_Deck(Deck):
|
|||||||
"溶液堆栈": bioyond_warehouse_1x4x4("溶液堆栈"), # 4行×4列 (A01-D04)
|
"溶液堆栈": bioyond_warehouse_1x4x4("溶液堆栈"), # 4行×4列 (A01-D04)
|
||||||
}
|
}
|
||||||
self.warehouse_locations = {
|
self.warehouse_locations = {
|
||||||
"粉末堆栈": Coordinate(0.0, 450.0, 0.0),
|
"粉末堆栈": Coordinate(-200.0, 400.0, 0.0),
|
||||||
"试剂堆栈": Coordinate(1850.0, 200.0, 0.0),
|
"试剂堆栈": Coordinate(1750.0, 160.0, 0.0),
|
||||||
"溶液堆栈": Coordinate(2500.0, 450.0, 0.0),
|
"溶液堆栈": Coordinate(2350.0, 400.0, 0.0),
|
||||||
}
|
}
|
||||||
|
|
||||||
for warehouse_name, warehouse in self.warehouses.items():
|
for warehouse_name, warehouse in self.warehouses.items():
|
||||||
|
|||||||
@@ -97,11 +97,11 @@ def bioyond_warehouse_reagent_storage(name: str) -> WareHouse:
|
|||||||
layout="vertical-col-major", # ⭐ 竖向warehouse专用布局
|
layout="vertical-col-major", # ⭐ 竖向warehouse专用布局
|
||||||
)
|
)
|
||||||
|
|
||||||
def bioyond_warehouse_tipbox_storage(name: str) -> WareHouse:
|
def bioyond_warehouse_tipbox_storage_left(name: str) -> WareHouse:
|
||||||
"""创建BioYond站内Tip盒堆栈(A01~B03),用于存放枪头盒"""
|
"""创建BioYond站内Tip盒堆栈左侧部分(A02~B03),2列2行"""
|
||||||
return warehouse_factory(
|
return warehouse_factory(
|
||||||
name=name,
|
name=name,
|
||||||
num_items_x=3, # 3列(01-03)
|
num_items_x=2, # 2列
|
||||||
num_items_y=2, # 2行(A-B)
|
num_items_y=2, # 2行(A-B)
|
||||||
num_items_z=1, # 1层
|
num_items_z=1, # 1层
|
||||||
dx=10.0,
|
dx=10.0,
|
||||||
@@ -111,7 +111,25 @@ def bioyond_warehouse_tipbox_storage(name: str) -> WareHouse:
|
|||||||
item_dy=96.0,
|
item_dy=96.0,
|
||||||
item_dz=120.0,
|
item_dz=120.0,
|
||||||
category="warehouse",
|
category="warehouse",
|
||||||
col_offset=0,
|
col_offset=1, # 从02开始: A02, A03
|
||||||
|
layout="row-major",
|
||||||
|
)
|
||||||
|
|
||||||
|
def bioyond_warehouse_tipbox_storage_right(name: str) -> WareHouse:
|
||||||
|
"""创建BioYond站内Tip盒堆栈右侧部分(A01~B01),1列2行"""
|
||||||
|
return warehouse_factory(
|
||||||
|
name=name,
|
||||||
|
num_items_x=1, # 1列
|
||||||
|
num_items_y=2, # 2行(A-B)
|
||||||
|
num_items_z=1, # 1层
|
||||||
|
dx=10.0,
|
||||||
|
dy=10.0,
|
||||||
|
dz=10.0,
|
||||||
|
item_dx=137.0,
|
||||||
|
item_dy=96.0,
|
||||||
|
item_dz=120.0,
|
||||||
|
category="warehouse",
|
||||||
|
col_offset=0, # 从01开始: A01
|
||||||
layout="row-major",
|
layout="row-major",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -811,6 +811,15 @@ def resource_bioyond_to_plr(bioyond_materials: list[dict], type_mapping: Dict[st
|
|||||||
logger.warning(f"物料 {material['name']} 的列号 x={x_val} 超出范围,无法映射到堆栈1左或堆栈1右")
|
logger.warning(f"物料 {material['name']} 的列号 x={x_val} 超出范围,无法映射到堆栈1左或堆栈1右")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# 特殊处理: Bioyond的"站内Tip盒堆栈"也需要进行拆分映射
|
||||||
|
if wh_name == "站内Tip盒堆栈":
|
||||||
|
y_val = loc.get("y", 1)
|
||||||
|
if y_val == 1:
|
||||||
|
wh_name = "站内Tip盒堆栈(右)"
|
||||||
|
elif y_val in [2, 3]:
|
||||||
|
wh_name = "站内Tip盒堆栈(左)"
|
||||||
|
y = y - 1 # 调整列号,因为左侧仓库对应的 Bioyond y=2 实际上是它的第1列
|
||||||
|
|
||||||
if hasattr(deck, "warehouses") and wh_name in deck.warehouses:
|
if hasattr(deck, "warehouses") and wh_name in deck.warehouses:
|
||||||
warehouse = deck.warehouses[wh_name]
|
warehouse = deck.warehouses[wh_name]
|
||||||
logger.debug(f"[Warehouse匹配] 找到warehouse: {wh_name} (容量: {warehouse.capacity}, 行×列: {warehouse.num_items_x}×{warehouse.num_items_y})")
|
logger.debug(f"[Warehouse匹配] 找到warehouse: {wh_name} (容量: {warehouse.capacity}, 行×列: {warehouse.num_items_x}×{warehouse.num_items_y})")
|
||||||
@@ -837,7 +846,7 @@ def resource_bioyond_to_plr(bioyond_materials: list[dict], type_mapping: Dict[st
|
|||||||
row_idx = y - 1 # Bioyond的y(01,02,03) → row索引(0,1,2)
|
row_idx = y - 1 # Bioyond的y(01,02,03) → row索引(0,1,2)
|
||||||
layer_idx = z - 1
|
layer_idx = z - 1
|
||||||
|
|
||||||
idx = layer_idx * (warehouse.num_items_x * warehouse.num_items_y) + row_idx * warehouse.num_items_x + col_idx
|
idx = layer_idx * (warehouse.num_items_x * warehouse.num_items_y) + row_idx * warehouse.num_items_y + col_idx
|
||||||
logger.debug(f"🔍 竖向warehouse {wh_name}: Bioyond(x={x},y={y},z={z}) → warehouse(col={col_idx},row={row_idx},layer={layer_idx}) → idx={idx}, capacity={warehouse.capacity}")
|
logger.debug(f"🔍 竖向warehouse {wh_name}: Bioyond(x={x},y={y},z={z}) → warehouse(col={col_idx},row={row_idx},layer={layer_idx}) → idx={idx}, capacity={warehouse.capacity}")
|
||||||
|
|
||||||
# 普通横向warehouse的处理
|
# 普通横向warehouse的处理
|
||||||
|
|||||||
@@ -9,49 +9,125 @@
|
|||||||
"parent": null,
|
"parent": null,
|
||||||
"type": "device",
|
"type": "device",
|
||||||
"class": "bioyond_dispensing_station",
|
"class": "bioyond_dispensing_station",
|
||||||
"config": {
|
"position": {
|
||||||
"config": {
|
"x": 0,
|
||||||
"api_key": "DE9BDDA0",
|
"y": 0,
|
||||||
"api_host": "http://192.168.1.200:44388",
|
"z": 0
|
||||||
"material_type_mappings": {
|
|
||||||
"BIOYOND_PolymerStation_1FlaskCarrier": [
|
|
||||||
"烧杯",
|
|
||||||
"3a14196b-24f2-ca49-9081-0cab8021bf1a"
|
|
||||||
],
|
|
||||||
"BIOYOND_PolymerStation_1BottleCarrier": [
|
|
||||||
"试剂瓶",
|
|
||||||
"3a14196b-8bcf-a460-4f74-23f21ca79e72"
|
|
||||||
],
|
|
||||||
"BIOYOND_PolymerStation_6StockCarrier": [
|
|
||||||
"分装板",
|
|
||||||
"3a14196e-5dfe-6e21-0c79-fe2036d052c4"
|
|
||||||
],
|
|
||||||
"BIOYOND_PolymerStation_Liquid_Vial": [
|
|
||||||
"10%分装小瓶",
|
|
||||||
"3a14196c-76be-2279-4e22-7310d69aed68"
|
|
||||||
],
|
|
||||||
"BIOYOND_PolymerStation_Solid_Vial": [
|
|
||||||
"90%分装小瓶",
|
|
||||||
"3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea"
|
|
||||||
],
|
|
||||||
"BIOYOND_PolymerStation_8StockCarrier": [
|
|
||||||
"样品板",
|
|
||||||
"3a14196e-b7a0-a5da-1931-35f3000281e9"
|
|
||||||
],
|
|
||||||
"BIOYOND_PolymerStation_Solid_Stock": [
|
|
||||||
"样品瓶",
|
|
||||||
"3a14196a-cf7d-8aea-48d8-b9662c7dba94"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"deck": {
|
|
||||||
"data": {
|
|
||||||
"_resource_child_name": "Bioyond_Dispensing_Deck",
|
|
||||||
"_resource_type": "unilabos.resources.bioyond.decks:BIOYOND_PolymerPreparationStation_Deck"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"protocol_type": []
|
|
||||||
},
|
},
|
||||||
|
"config": {
|
||||||
|
"api_key": "YOUR_API_KEY",
|
||||||
|
"api_host": "http://your-api-host:port",
|
||||||
|
"material_type_mappings": {
|
||||||
|
"BIOYOND_PolymerStation_1FlaskCarrier": [
|
||||||
|
"烧杯",
|
||||||
|
"uuid-placeholder-flask"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_1BottleCarrier": [
|
||||||
|
"试剂瓶",
|
||||||
|
"uuid-placeholder-bottle"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_6StockCarrier": [
|
||||||
|
"分装板",
|
||||||
|
"uuid-placeholder-stock-6"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_Liquid_Vial": [
|
||||||
|
"10%分装小瓶",
|
||||||
|
"uuid-placeholder-liquid-vial"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_Solid_Vial": [
|
||||||
|
"90%分装小瓶",
|
||||||
|
"uuid-placeholder-solid-vial"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_8StockCarrier": [
|
||||||
|
"样品板",
|
||||||
|
"uuid-placeholder-stock-8"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_Solid_Stock": [
|
||||||
|
"样品瓶",
|
||||||
|
"uuid-placeholder-solid-stock"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"warehouse_mapping": {
|
||||||
|
"粉末堆栈": {
|
||||||
|
"uuid": "uuid-placeholder-powder-stack",
|
||||||
|
"site_uuids": {
|
||||||
|
"A01": "uuid-placeholder-powder-A01",
|
||||||
|
"A02": "uuid-placeholder-powder-A02",
|
||||||
|
"A03": "uuid-placeholder-powder-A03",
|
||||||
|
"A04": "uuid-placeholder-powder-A04",
|
||||||
|
"B01": "uuid-placeholder-powder-B01",
|
||||||
|
"B02": "uuid-placeholder-powder-B02",
|
||||||
|
"B03": "uuid-placeholder-powder-B03",
|
||||||
|
"B04": "uuid-placeholder-powder-B04",
|
||||||
|
"C01": "uuid-placeholder-powder-C01",
|
||||||
|
"C02": "uuid-placeholder-powder-C02",
|
||||||
|
"C03": "uuid-placeholder-powder-C03",
|
||||||
|
"C04": "uuid-placeholder-powder-C04",
|
||||||
|
"D01": "uuid-placeholder-powder-D01",
|
||||||
|
"D02": "uuid-placeholder-powder-D02",
|
||||||
|
"D03": "uuid-placeholder-powder-D03",
|
||||||
|
"D04": "uuid-placeholder-powder-D04"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"溶液堆栈": {
|
||||||
|
"uuid": "uuid-placeholder-liquid-stack",
|
||||||
|
"site_uuids": {
|
||||||
|
"A01": "uuid-placeholder-liquid-A01",
|
||||||
|
"A02": "uuid-placeholder-liquid-A02",
|
||||||
|
"A03": "uuid-placeholder-liquid-A03",
|
||||||
|
"A04": "uuid-placeholder-liquid-A04",
|
||||||
|
"B01": "uuid-placeholder-liquid-B01",
|
||||||
|
"B02": "uuid-placeholder-liquid-B02",
|
||||||
|
"B03": "uuid-placeholder-liquid-B03",
|
||||||
|
"B04": "uuid-placeholder-liquid-B04",
|
||||||
|
"C01": "uuid-placeholder-liquid-C01",
|
||||||
|
"C02": "uuid-placeholder-liquid-C02",
|
||||||
|
"C03": "uuid-placeholder-liquid-C03",
|
||||||
|
"C04": "uuid-placeholder-liquid-C04",
|
||||||
|
"D01": "uuid-placeholder-liquid-D01",
|
||||||
|
"D02": "uuid-placeholder-liquid-D02",
|
||||||
|
"D03": "uuid-placeholder-liquid-D03",
|
||||||
|
"D04": "uuid-placeholder-liquid-D04"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"试剂堆栈": {
|
||||||
|
"uuid": "uuid-placeholder-reagent-stack",
|
||||||
|
"site_uuids": {
|
||||||
|
"A01": "uuid-placeholder-reagent-A01",
|
||||||
|
"A02": "uuid-placeholder-reagent-A02",
|
||||||
|
"A03": "uuid-placeholder-reagent-A03",
|
||||||
|
"A04": "uuid-placeholder-reagent-A04",
|
||||||
|
"B01": "uuid-placeholder-reagent-B01",
|
||||||
|
"B02": "uuid-placeholder-reagent-B02",
|
||||||
|
"B03": "uuid-placeholder-reagent-B03",
|
||||||
|
"B04": "uuid-placeholder-reagent-B04"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"http_service_config": {
|
||||||
|
"http_service_host": "127.0.0.1",
|
||||||
|
"http_service_port": 8080
|
||||||
|
},
|
||||||
|
"material_default_parameters": {
|
||||||
|
"NMP": {
|
||||||
|
"unit": "毫升",
|
||||||
|
"density": "1.03",
|
||||||
|
"densityUnit": "g/mL",
|
||||||
|
"description": "N-甲基吡咯烷酮 (N-Methyl-2-pyrrolidone)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"material_type_parameters": {}
|
||||||
|
},
|
||||||
|
"deck": {
|
||||||
|
"data": {
|
||||||
|
"_resource_child_name": "Bioyond_Dispensing_Deck",
|
||||||
|
"_resource_type": "unilabos.resources.bioyond.decks:BIOYOND_PolymerPreparationStation_Deck"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"size_x": 2700.0,
|
||||||
|
"size_y": 1080.0,
|
||||||
|
"size_z": 1500.0,
|
||||||
|
"protocol_type": [],
|
||||||
"data": {}
|
"data": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -80,4 +156,4 @@
|
|||||||
"data": {}
|
"data": {}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -20,65 +20,194 @@
|
|||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"config": {
|
"api_key": "YOUR_API_KEY",
|
||||||
"api_key": "DE9BDDA0",
|
"api_host": "http://your-api-host:port",
|
||||||
"api_host": "http://192.168.1.200:44402",
|
"workflow_mappings": {
|
||||||
"workflow_mappings": {
|
"reactor_taken_out": "workflow-uuid-reactor-out",
|
||||||
"reactor_taken_out": "3a16081e-4788-ca37-eff4-ceed8d7019d1",
|
"reactor_taken_in": "workflow-uuid-reactor-in",
|
||||||
"reactor_taken_in": "3a160df6-76b3-0957-9eb0-cb496d5721c6",
|
"Solid_feeding_vials": "workflow-uuid-solid-vials",
|
||||||
"Solid_feeding_vials": "3a160877-87e7-7699-7bc6-ec72b05eb5e6",
|
"Liquid_feeding_vials(non-titration)": "workflow-uuid-liquid-vials",
|
||||||
"Liquid_feeding_vials(non-titration)": "3a167d99-6158-c6f0-15b5-eb030f7d8e47",
|
"Liquid_feeding_solvents": "workflow-uuid-solvents",
|
||||||
"Liquid_feeding_solvents": "3a160824-0665-01ed-285a-51ef817a9046",
|
"Liquid_feeding(titration)": "workflow-uuid-titration",
|
||||||
"Liquid_feeding(titration)": "3a16082a-96ac-0449-446a-4ed39f3365b6",
|
"liquid_feeding_beaker": "workflow-uuid-beaker",
|
||||||
"liquid_feeding_beaker": "3a16087e-124f-8ddb-8ec1-c2dff09ca784",
|
"Drip_back": "workflow-uuid-drip-back"
|
||||||
"Drip_back": "3a162cf9-6aac-565a-ddd7-682ba1796a4a"
|
},
|
||||||
|
"material_type_mappings": {
|
||||||
|
"BIOYOND_PolymerStation_Reactor": [
|
||||||
|
"反应器",
|
||||||
|
"uuid-placeholder-reactor"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_1BottleCarrier": [
|
||||||
|
"试剂瓶",
|
||||||
|
"uuid-placeholder-bottle"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_1FlaskCarrier": [
|
||||||
|
"烧杯",
|
||||||
|
"uuid-placeholder-beaker"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_6StockCarrier": [
|
||||||
|
"样品板",
|
||||||
|
"uuid-placeholder-sample-plate"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_Solid_Vial": [
|
||||||
|
"90%分装小瓶",
|
||||||
|
"uuid-placeholder-solid-vial"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_Liquid_Vial": [
|
||||||
|
"10%分装小瓶",
|
||||||
|
"uuid-placeholder-liquid-vial"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_TipBox": [
|
||||||
|
"枪头盒",
|
||||||
|
"uuid-placeholder-tipbox"
|
||||||
|
],
|
||||||
|
"BIOYOND_PolymerStation_Measurement_Vial": [
|
||||||
|
"测量小瓶",
|
||||||
|
"uuid-placeholder-measure-vial"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"warehouse_mapping": {
|
||||||
|
"堆栈1左": {
|
||||||
|
"uuid": "uuid-placeholder-stack1-left",
|
||||||
|
"site_uuids": {
|
||||||
|
"A01": "uuid-placeholder-site-A01",
|
||||||
|
"A02": "uuid-placeholder-site-A02",
|
||||||
|
"A03": "uuid-placeholder-site-A03",
|
||||||
|
"A04": "uuid-placeholder-site-A04",
|
||||||
|
"B01": "uuid-placeholder-site-B01",
|
||||||
|
"B02": "uuid-placeholder-site-B02",
|
||||||
|
"B03": "uuid-placeholder-site-B03",
|
||||||
|
"B04": "uuid-placeholder-site-B04",
|
||||||
|
"C01": "uuid-placeholder-site-C01",
|
||||||
|
"C02": "uuid-placeholder-site-C02",
|
||||||
|
"C03": "uuid-placeholder-site-C03",
|
||||||
|
"C04": "uuid-placeholder-site-C04",
|
||||||
|
"D01": "uuid-placeholder-site-D01",
|
||||||
|
"D02": "uuid-placeholder-site-D02",
|
||||||
|
"D03": "uuid-placeholder-site-D03",
|
||||||
|
"D04": "uuid-placeholder-site-D04"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"material_type_mappings": {
|
"堆栈1右": {
|
||||||
"BIOYOND_PolymerStation_Reactor": [
|
"uuid": "uuid-placeholder-stack1-right",
|
||||||
"反应器",
|
"site_uuids": {
|
||||||
"3a14233b-902d-0d7b-4533-3f60f1c41c1b"
|
"A05": "uuid-placeholder-site-A05",
|
||||||
],
|
"A06": "uuid-placeholder-site-A06",
|
||||||
"BIOYOND_PolymerStation_1BottleCarrier": [
|
"A07": "uuid-placeholder-site-A07",
|
||||||
"试剂瓶",
|
"A08": "uuid-placeholder-site-A08",
|
||||||
"3a14233b-56e3-6c53-a8ab-fcaac163a9ba"
|
"B05": "uuid-placeholder-site-B05",
|
||||||
],
|
"B06": "uuid-placeholder-site-B06",
|
||||||
"BIOYOND_PolymerStation_1FlaskCarrier": [
|
"B07": "uuid-placeholder-site-B07",
|
||||||
"烧杯",
|
"B08": "uuid-placeholder-site-B08",
|
||||||
"3a14233b-f0a9-ba84-eaa9-0d4718b361b6"
|
"C05": "uuid-placeholder-site-C05",
|
||||||
],
|
"C06": "uuid-placeholder-site-C06",
|
||||||
"BIOYOND_PolymerStation_6StockCarrier": [
|
"C07": "uuid-placeholder-site-C07",
|
||||||
"样品板",
|
"C08": "uuid-placeholder-site-C08",
|
||||||
"3a142339-80de-8f25-6093-1b1b1b6c322e"
|
"D05": "uuid-placeholder-site-D05",
|
||||||
],
|
"D06": "uuid-placeholder-site-D06",
|
||||||
"BIOYOND_PolymerStation_Solid_Vial": [
|
"D07": "uuid-placeholder-site-D07",
|
||||||
"90%分装小瓶",
|
"D08": "uuid-placeholder-site-D08"
|
||||||
"3a14233a-26e1-28f8-af6a-60ca06ba0165"
|
}
|
||||||
],
|
},
|
||||||
"BIOYOND_PolymerStation_Liquid_Vial": [
|
"站内试剂存放堆栈": {
|
||||||
"10%分装小瓶",
|
"uuid": "uuid-placeholder-reagent-stack",
|
||||||
"3a14233a-84a3-088d-6676-7cb4acd57c64"
|
"site_uuids": {
|
||||||
],
|
"A01": "uuid-placeholder-reagent-A01",
|
||||||
"BIOYOND_PolymerStation_TipBox": [
|
"A02": "uuid-placeholder-reagent-A02"
|
||||||
"枪头盒",
|
}
|
||||||
"3a143890-9d51-60ac-6d6f-6edb43c12041"
|
},
|
||||||
],
|
"测量小瓶仓库(测密度)": {
|
||||||
"BIOYOND_PolymerStation_Measurement_Vial": [
|
"uuid": "uuid-placeholder-density-stack",
|
||||||
"测量小瓶",
|
"site_uuids": {
|
||||||
"b1fc79c9-5864-4f05-8052-6ed3abc18a97"
|
"A01": "uuid-placeholder-density-A01",
|
||||||
]
|
"A02": "uuid-placeholder-density-A02",
|
||||||
|
"A03": "uuid-placeholder-density-A03",
|
||||||
|
"B01": "uuid-placeholder-density-B01",
|
||||||
|
"B02": "uuid-placeholder-density-B02",
|
||||||
|
"B03": "uuid-placeholder-density-B03"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"站内Tip盒堆栈(左)": {
|
||||||
|
"uuid": "uuid-placeholder-tipstack-left",
|
||||||
|
"site_uuids": {
|
||||||
|
"A02": "uuid-placeholder-tip-A02",
|
||||||
|
"A03": "uuid-placeholder-tip-A03",
|
||||||
|
"B02": "uuid-placeholder-tip-B02",
|
||||||
|
"B03": "uuid-placeholder-tip-B03"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"站内Tip盒堆栈(右)": {
|
||||||
|
"uuid": "uuid-placeholder-tipstack-right",
|
||||||
|
"site_uuids": {
|
||||||
|
"A01": "uuid-placeholder-tip-A01",
|
||||||
|
"B01": "uuid-placeholder-tip-B01"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"deck": {
|
"workflow_to_section_map": {
|
||||||
"data": {
|
"reactor_taken_in": "反应器放入",
|
||||||
"_resource_child_name": "Bioyond_Deck",
|
"reactor_taken_out": "反应器取出",
|
||||||
"_resource_type": "unilabos.resources.bioyond.decks:BIOYOND_PolymerReactionStation_Deck"
|
"Solid_feeding_vials": "固体投料-小瓶",
|
||||||
|
"Liquid_feeding_vials(non-titration)": "液体投料-小瓶(非滴定)",
|
||||||
|
"Liquid_feeding_solvents": "液体投料-溶剂",
|
||||||
|
"Liquid_feeding(titration)": "液体投料-滴定",
|
||||||
|
"liquid_feeding_beaker": "液体投料-烧杯",
|
||||||
|
"Drip_back": "液体回滴"
|
||||||
|
},
|
||||||
|
"action_names": {
|
||||||
|
"reactor_taken_in": {
|
||||||
|
"config": "通量-配置",
|
||||||
|
"stirring": "反应模块-开始搅拌"
|
||||||
|
},
|
||||||
|
"solid_feeding_vials": {
|
||||||
|
"feeding": "粉末加样模块-投料",
|
||||||
|
"observe": "反应模块-观察搅拌结果"
|
||||||
|
},
|
||||||
|
"liquid_feeding_vials_non_titration": {
|
||||||
|
"liquid": "稀释液瓶加液位-液体投料",
|
||||||
|
"observe": "反应模块-滴定结果观察"
|
||||||
|
},
|
||||||
|
"liquid_feeding_solvents": {
|
||||||
|
"liquid": "试剂AB放置位-试剂吸液分液",
|
||||||
|
"observe": "反应模块-观察搅拌结果"
|
||||||
|
},
|
||||||
|
"liquid_feeding_titration": {
|
||||||
|
"liquid": "稀释液瓶加液位-稀释液吸液分液",
|
||||||
|
"observe": "反应模块-滴定结果观察"
|
||||||
|
},
|
||||||
|
"liquid_feeding_beaker": {
|
||||||
|
"liquid": "烧杯溶液放置位-烧杯吸液分液",
|
||||||
|
"observe": "反应模块-观察搅拌结果"
|
||||||
|
},
|
||||||
|
"drip_back": {
|
||||||
|
"liquid": "试剂AB放置位-试剂吸液分液",
|
||||||
|
"observe": "反应模块-向下滴定结果观察"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"size_x": 2700.0,
|
"http_service_config": {
|
||||||
"size_y": 1080.0,
|
"http_service_host": "127.0.0.1",
|
||||||
"size_z": 2000.0,
|
"http_service_port": 8080
|
||||||
"protocol_type": []
|
},
|
||||||
|
"material_default_parameters": {
|
||||||
|
"NMP": {
|
||||||
|
"unit": "毫升",
|
||||||
|
"density": "1.03",
|
||||||
|
"densityUnit": "g/mL",
|
||||||
|
"description": "N-甲基吡咯烷酮 (N-Methyl-2-pyrrolidone)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"material_type_parameters": {}
|
||||||
},
|
},
|
||||||
|
"deck": {
|
||||||
|
"data": {
|
||||||
|
"_resource_child_name": "Bioyond_Deck",
|
||||||
|
"_resource_type": "unilabos.resources.bioyond.decks:BIOYOND_PolymerReactionStation_Deck"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"size_x": 2700.0,
|
||||||
|
"size_y": 1080.0,
|
||||||
|
"size_z": 2500.0,
|
||||||
|
"protocol_type": [],
|
||||||
"data": {}
|
"data": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -90,7 +219,7 @@
|
|||||||
"class": "reaction_station.reactor",
|
"class": "reaction_station.reactor",
|
||||||
"position": {
|
"position": {
|
||||||
"x": 1150,
|
"x": 1150,
|
||||||
"y": 380,
|
"y": 300,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"config": {},
|
"config": {},
|
||||||
@@ -105,7 +234,7 @@
|
|||||||
"class": "reaction_station.reactor",
|
"class": "reaction_station.reactor",
|
||||||
"position": {
|
"position": {
|
||||||
"x": 1365,
|
"x": 1365,
|
||||||
"y": 380,
|
"y": 300,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"config": {},
|
"config": {},
|
||||||
@@ -120,7 +249,7 @@
|
|||||||
"class": "reaction_station.reactor",
|
"class": "reaction_station.reactor",
|
||||||
"position": {
|
"position": {
|
||||||
"x": 1580,
|
"x": 1580,
|
||||||
"y": 380,
|
"y": 300,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"config": {},
|
"config": {},
|
||||||
@@ -135,7 +264,7 @@
|
|||||||
"class": "reaction_station.reactor",
|
"class": "reaction_station.reactor",
|
||||||
"position": {
|
"position": {
|
||||||
"x": 1790,
|
"x": 1790,
|
||||||
"y": 380,
|
"y": 300,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"config": {},
|
"config": {},
|
||||||
@@ -150,7 +279,7 @@
|
|||||||
"class": "reaction_station.reactor",
|
"class": "reaction_station.reactor",
|
||||||
"position": {
|
"position": {
|
||||||
"x": 2010,
|
"x": 2010,
|
||||||
"y": 380,
|
"y": 300,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"config": {},
|
"config": {},
|
||||||
@@ -181,4 +310,4 @@
|
|||||||
"data": {}
|
"data": {}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user