mirror of
https://github.com/deepmodeling/Uni-Lab-OS
synced 2026-04-26 07:18:07 +00:00
- MagazineHolder: klasses=None,解耦极片子节点初始化 - Magazine: 重写 serialize/deserialize,截断旧极片脏数据 - bottle_carriers: 移除 YIHUA_Electrolyte_12VialCarrier 初始化填瓶 - decks.py: BIOYOND_YB_Deck→BioyondElectrolyteDeck,移除 setup 参数 - YB_YH_materials.py: CoincellDeck→YihuaCoinCellDeck,新增 electrolyte_buffer 槽位 - resource_tracker.py: Container 状态键预填 + 重复 UUID 自动修复 + 树级名称去重 - itemized_carrier.py: XY 近似坐标匹配,修复 Z 偏移问题 - bioyond_cell_workstation.py: 跨站转运改用真实资源 + 类型映射双模式查找 - station.py: sync_to_external 属性访问路径修复 - coin_cell_assembly.py: 新增 10 个 Modbus 余量属性 - CSV/JSON/YAML 配置同步更新(类名重命名 + 移除 setup) - 新增 changelog_2026-03-12.md
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
from pylabrobot.resources import create_homogeneous_resources, Coordinate, ResourceHolder, create_ordered_items_2d
|
||
|
||
from unilabos.resources.itemized_carrier import Bottle, BottleCarrier
|
||
# 命名约定:试剂瓶-Bottle,烧杯-Beaker,烧瓶-Flask,小瓶-Vial
|
||
|
||
|
||
def YIHUA_Electrolyte_12VialCarrier(name: str) -> BottleCarrier:
|
||
"""12瓶载架 - 2x6布局"""
|
||
# 载架尺寸 (mm)
|
||
carrier_size_x = 120.0
|
||
carrier_size_y = 250.0
|
||
carrier_size_z = 50.0
|
||
|
||
# 瓶位尺寸
|
||
bottle_diameter = 35.0
|
||
bottle_spacing_x = 35.0 # X方向间距
|
||
bottle_spacing_y = 35.0 # Y方向间距
|
||
|
||
# 计算起始位置 (居中排列)
|
||
start_x = (carrier_size_x - (2 - 1) * bottle_spacing_x - bottle_diameter) / 2
|
||
start_y = (carrier_size_y - (6 - 1) * bottle_spacing_y - bottle_diameter) / 2
|
||
|
||
sites = create_ordered_items_2d(
|
||
klass=ResourceHolder,
|
||
num_items_x=2,
|
||
num_items_y=6,
|
||
dx=start_x,
|
||
dy=start_y,
|
||
dz=5.0,
|
||
item_dx=bottle_spacing_x,
|
||
item_dy=bottle_spacing_y,
|
||
|
||
size_x=bottle_diameter,
|
||
size_y=bottle_diameter,
|
||
size_z=carrier_size_z,
|
||
)
|
||
for k, v in sites.items():
|
||
v.name = f"{name}_{v.name}"
|
||
|
||
carrier = BottleCarrier(
|
||
name=name,
|
||
size_x=carrier_size_x,
|
||
size_y=carrier_size_y,
|
||
size_z=carrier_size_z,
|
||
sites=sites,
|
||
model="Electrolyte_12VialCarrier",
|
||
)
|
||
carrier.num_items_x = 2
|
||
carrier.num_items_y = 6
|
||
carrier.num_items_z = 1
|
||
# 载架初始化为空,瓶子由实际转运操作填入,避免反序列化时重复 assign
|
||
return carrier
|