mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-19 05:51:17 +00:00
Add battery resources, bioyond_cell device registry, and fix file path resolution
This commit is contained in:
152
unilabos/resources/battery/magazine.py
Normal file
152
unilabos/resources/battery/magazine.py
Normal file
@@ -0,0 +1,152 @@
|
||||
"""
|
||||
弹夹架类定义 - 用于纽扣电池组装工作站
|
||||
Magazine Holder Resource Classes
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
from typing import List, Optional
|
||||
from pylabrobot.resources.coordinate import Coordinate
|
||||
from pylabrobot.resources import ResourceHolder
|
||||
from pylabrobot.resources.utils import create_ordered_items_2d
|
||||
from unilabos.resources.itemized_carrier import ItemizedCarrier
|
||||
|
||||
|
||||
def MagazineHolder_4_Cathode(name: str) -> ItemizedCarrier:
|
||||
"""正极&铝箔弹夹 - 4个洞位 (2x2布局)
|
||||
|
||||
Args:
|
||||
name: 弹夹名称
|
||||
|
||||
Returns:
|
||||
ItemizedCarrier: 包含4个槽位的弹夹架
|
||||
"""
|
||||
sites = create_ordered_items_2d(
|
||||
klass=ResourceHolder,
|
||||
num_items_x=2,
|
||||
num_items_y=2,
|
||||
dx=10.0,
|
||||
dy=10.0,
|
||||
dz=0.0,
|
||||
item_dx=50.0,
|
||||
item_dy=30.0,
|
||||
size_x=40.0,
|
||||
size_y=25.0,
|
||||
size_z=40.0,
|
||||
)
|
||||
|
||||
return ItemizedCarrier(
|
||||
name=name,
|
||||
size_x=120.0,
|
||||
size_y=80.0,
|
||||
size_z=50.0,
|
||||
num_items_x=2,
|
||||
num_items_y=2,
|
||||
sites=sites,
|
||||
category="magazine_holder",
|
||||
)
|
||||
|
||||
|
||||
def MagazineHolder_6_Cathode(name: str) -> ItemizedCarrier:
|
||||
"""正极壳&平垫片弹夹 - 6个洞位 (2x3布局)
|
||||
|
||||
Args:
|
||||
name: 弹夹名称
|
||||
|
||||
Returns:
|
||||
ItemizedCarrier: 包含6个槽位的弹夹架
|
||||
"""
|
||||
sites = create_ordered_items_2d(
|
||||
klass=ResourceHolder,
|
||||
num_items_x=3,
|
||||
num_items_y=2,
|
||||
dx=10.0,
|
||||
dy=10.0,
|
||||
dz=0.0,
|
||||
item_dx=40.0,
|
||||
item_dy=30.0,
|
||||
size_x=35.0,
|
||||
size_y=25.0,
|
||||
size_z=40.0,
|
||||
)
|
||||
|
||||
return ItemizedCarrier(
|
||||
name=name,
|
||||
size_x=150.0,
|
||||
size_y=80.0,
|
||||
size_z=50.0,
|
||||
num_items_x=3,
|
||||
num_items_y=2,
|
||||
sites=sites,
|
||||
category="magazine_holder",
|
||||
)
|
||||
|
||||
|
||||
def MagazineHolder_6_Anode(name: str) -> ItemizedCarrier:
|
||||
"""负极壳&弹垫片弹夹 - 6个洞位 (2x3布局)
|
||||
|
||||
Args:
|
||||
name: 弹夹名称
|
||||
|
||||
Returns:
|
||||
ItemizedCarrier: 包含6个槽位的弹夹架
|
||||
"""
|
||||
sites = create_ordered_items_2d(
|
||||
klass=ResourceHolder,
|
||||
num_items_x=3,
|
||||
num_items_y=2,
|
||||
dx=10.0,
|
||||
dy=10.0,
|
||||
dz=0.0,
|
||||
item_dx=40.0,
|
||||
item_dy=30.0,
|
||||
size_x=35.0,
|
||||
size_y=25.0,
|
||||
size_z=40.0,
|
||||
)
|
||||
|
||||
return ItemizedCarrier(
|
||||
name=name,
|
||||
size_x=150.0,
|
||||
size_y=80.0,
|
||||
size_z=50.0,
|
||||
num_items_x=3,
|
||||
num_items_y=2,
|
||||
sites=sites,
|
||||
category="magazine_holder",
|
||||
)
|
||||
|
||||
|
||||
def MagazineHolder_6_Battery(name: str) -> ItemizedCarrier:
|
||||
"""成品弹夹 - 6个洞位 (3x2布局)
|
||||
|
||||
Args:
|
||||
name: 弹夹名称
|
||||
|
||||
Returns:
|
||||
ItemizedCarrier: 包含6个槽位的弹夹架
|
||||
"""
|
||||
sites = create_ordered_items_2d(
|
||||
klass=ResourceHolder,
|
||||
num_items_x=3,
|
||||
num_items_y=2,
|
||||
dx=10.0,
|
||||
dy=10.0,
|
||||
dz=0.0,
|
||||
item_dx=33.0,
|
||||
item_dy=40.0,
|
||||
size_x=30.0,
|
||||
size_y=35.0,
|
||||
size_z=40.0,
|
||||
)
|
||||
|
||||
return ItemizedCarrier(
|
||||
name=name,
|
||||
size_x=120.0,
|
||||
size_y=100.0,
|
||||
size_z=50.0,
|
||||
num_items_x=3,
|
||||
num_items_y=2,
|
||||
sites=sites,
|
||||
category="magazine_holder",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user