mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 04:51:10 +00:00
byxinyu111
This commit is contained in:
38
new_cellconfig3c.json
Normal file
38
new_cellconfig3c.json
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"id": "bioyond_cell_workstation",
|
||||||
|
"name": "配液分液工站",
|
||||||
|
"children": [
|
||||||
|
],
|
||||||
|
"parent": null,
|
||||||
|
"type": "device",
|
||||||
|
"class": "bioyond_cell",
|
||||||
|
"config": {
|
||||||
|
"protocol_type": [],
|
||||||
|
"station_resource": {}
|
||||||
|
},
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "BatteryStation",
|
||||||
|
"name": "扣电工作站",
|
||||||
|
"children": [
|
||||||
|
"coin_cell_deck"
|
||||||
|
],
|
||||||
|
"parent": null,
|
||||||
|
"type": "device",
|
||||||
|
"class": "coincellassemblyworkstation_device",
|
||||||
|
"position": {
|
||||||
|
"x": 600,
|
||||||
|
"y": 400,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"debug_mode": false,
|
||||||
|
"protocol_type": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": []
|
||||||
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "3a1d4b7e-4bdc-16bf-7169-f60350d03c7e",
|
"id": "3a1d4c14-a9fb-d7dc-9e96-7a3ad6e50219",
|
||||||
"typeName": "配液瓶(小)板",
|
"typeName": "配液瓶(小)板",
|
||||||
"code": "0001-00088",
|
"code": "0001-00093",
|
||||||
"barCode": "",
|
"barCode": "",
|
||||||
"name": "test1",
|
"name": "test",
|
||||||
"quantity": 1.0,
|
"quantity": 2.0,
|
||||||
"lockQuantity": 0.0,
|
"lockQuantity": 0.0,
|
||||||
"unit": "块",
|
"unit": "块",
|
||||||
"status": 1,
|
"status": 1,
|
||||||
"isUse": false,
|
"isUse": false,
|
||||||
"locations": [
|
"locations": [
|
||||||
{
|
{
|
||||||
"id": "3a19deae-2c7a-2426-6d71-e9de3cb158b1",
|
"id": "3a19deae-2c7a-36f5-5e41-02c5b66feaea",
|
||||||
"whid": "3a19deae-2c79-05a3-9c76-8e6760424841",
|
"whid": "3a19deae-2c79-05a3-9c76-8e6760424841",
|
||||||
"whName": "手动堆栈",
|
"whName": "手动堆栈",
|
||||||
"code": "4",
|
"code": "1",
|
||||||
"x": 2,
|
"x": 1,
|
||||||
"y": 1,
|
"y": 1,
|
||||||
"z": 1,
|
"z": 1,
|
||||||
"quantity": 0
|
"quantity": 0
|
||||||
@@ -24,13 +24,58 @@
|
|||||||
],
|
],
|
||||||
"detail": [
|
"detail": [
|
||||||
{
|
{
|
||||||
"id": "3a1d4b7e-4bdc-12e8-4d26-dddc77b03f63",
|
"id": "3a1d4c14-a9fc-1daa-71fa-146cb1ccb930",
|
||||||
"detailMaterialId": "3a1d4b7e-4bdc-4e9e-8a3c-e9ba4a26457e",
|
"detailMaterialId": "3a1d4c14-a9fc-4f38-4c48-68486c391c42",
|
||||||
"code": null,
|
"code": "0001-00093 - 05",
|
||||||
"name": "test1",
|
"name": "配液瓶(小)",
|
||||||
"quantity": "1",
|
"quantity": "1",
|
||||||
"lockQuantity": "0",
|
"lockQuantity": "0",
|
||||||
"unit": "块",
|
"unit": "个",
|
||||||
|
"x": 1,
|
||||||
|
"y": 3,
|
||||||
|
"z": 1,
|
||||||
|
"associateId": null,
|
||||||
|
"typeName": "配液瓶(小)",
|
||||||
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3a1d4c14-a9fc-3659-ea61-cd587da9e131",
|
||||||
|
"detailMaterialId": "3a1d4c14-a9fc-018f-93e5-c49343d37758",
|
||||||
|
"code": "0001-00093 - 08",
|
||||||
|
"name": "配液瓶(小)",
|
||||||
|
"quantity": "1",
|
||||||
|
"lockQuantity": "0",
|
||||||
|
"unit": "个",
|
||||||
|
"x": 2,
|
||||||
|
"y": 4,
|
||||||
|
"z": 1,
|
||||||
|
"associateId": null,
|
||||||
|
"typeName": "配液瓶(小)",
|
||||||
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3a1d4c14-a9fc-3f94-de83-979d2646e313",
|
||||||
|
"detailMaterialId": "3a1d4c14-a9fc-9987-c0ef-4b7cbad49e6b",
|
||||||
|
"code": "0001-00093 - 01",
|
||||||
|
"name": "配液瓶(小)",
|
||||||
|
"quantity": "1",
|
||||||
|
"lockQuantity": "0",
|
||||||
|
"unit": "个",
|
||||||
|
"x": 1,
|
||||||
|
"y": 1,
|
||||||
|
"z": 1,
|
||||||
|
"associateId": null,
|
||||||
|
"typeName": "配液瓶(小)",
|
||||||
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3a1d4c14-a9fc-8c35-6b25-913b11dbaf4e",
|
||||||
|
"detailMaterialId": "3a1d4c14-a9fc-9a83-865b-0c26ea5e8cc4",
|
||||||
|
"code": "0001-00093 - 03",
|
||||||
|
"name": "配液瓶(小)",
|
||||||
|
"quantity": "1",
|
||||||
|
"lockQuantity": "0",
|
||||||
|
"unit": "个",
|
||||||
"x": 1,
|
"x": 1,
|
||||||
"y": 2,
|
"y": 2,
|
||||||
"z": 1,
|
"z": 1,
|
||||||
@@ -39,75 +84,64 @@
|
|||||||
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "3a1d4b7e-4bdc-35b6-22d4-e6f3235e1c27",
|
"id": "3a1d4c14-a9fc-b41f-e968-64953bfddccd",
|
||||||
"detailMaterialId": "3a1d4b7e-4bdc-ce0f-1fbb-b88de76fce98",
|
"detailMaterialId": "3a1d4c14-a9fc-daf7-9d64-e5ec8d3ae0e2",
|
||||||
"code": null,
|
"code": "0001-00093 - 07",
|
||||||
"name": "test1",
|
"name": "配液瓶(小)",
|
||||||
"quantity": "1",
|
"quantity": "1",
|
||||||
"lockQuantity": "0",
|
"lockQuantity": "0",
|
||||||
"unit": "块",
|
"unit": "个",
|
||||||
"x": 1,
|
"x": 1,
|
||||||
|
"y": 4,
|
||||||
|
"z": 1,
|
||||||
|
"associateId": null,
|
||||||
|
"typeName": "配液瓶(小)",
|
||||||
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3a1d4c14-a9fc-c20f-c26e-b1bb2cdc3bca",
|
||||||
|
"detailMaterialId": "3a1d4c14-a9fc-673b-ac83-aaaf71287f1f",
|
||||||
|
"code": "0001-00093 - 06",
|
||||||
|
"name": "配液瓶(小)",
|
||||||
|
"quantity": "1",
|
||||||
|
"lockQuantity": "0",
|
||||||
|
"unit": "个",
|
||||||
|
"x": 2,
|
||||||
|
"y": 3,
|
||||||
|
"z": 1,
|
||||||
|
"associateId": null,
|
||||||
|
"typeName": "配液瓶(小)",
|
||||||
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3a1d4c14-a9fc-cf21-059c-fde361d82b6f",
|
||||||
|
"detailMaterialId": "3a1d4c14-a9fc-25b1-e736-6b0d8dac0fae",
|
||||||
|
"code": "0001-00093 - 02",
|
||||||
|
"name": "配液瓶(小)",
|
||||||
|
"quantity": "1",
|
||||||
|
"lockQuantity": "0",
|
||||||
|
"unit": "个",
|
||||||
|
"x": 2,
|
||||||
"y": 1,
|
"y": 1,
|
||||||
"z": 1,
|
"z": 1,
|
||||||
"associateId": null,
|
"associateId": null,
|
||||||
"typeName": "配液瓶(小)",
|
"typeName": "配液瓶(小)",
|
||||||
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
}
|
},
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3a1d4b7e-ee61-ae87-9cd0-31c7e6621b18",
|
|
||||||
"typeName": "5ml分液瓶板",
|
|
||||||
"code": "0010-00089",
|
|
||||||
"barCode": "",
|
|
||||||
"name": "test2",
|
|
||||||
"quantity": 1.0,
|
|
||||||
"lockQuantity": 0.0,
|
|
||||||
"unit": "块",
|
|
||||||
"status": 1,
|
|
||||||
"isUse": false,
|
|
||||||
"locations": [
|
|
||||||
{
|
{
|
||||||
"id": "3a19deae-2c7a-79b0-5e44-efaafd1e4cf3",
|
"id": "3a1d4c14-a9fc-d732-2b93-9b2bd2bf581b",
|
||||||
"whid": "3a19deae-2c79-05a3-9c76-8e6760424841",
|
"detailMaterialId": "3a1d4c14-a9fc-7f5d-b6b6-8bcb2e15f320",
|
||||||
"whName": "手动堆栈",
|
"code": "0001-00093 - 04",
|
||||||
"code": "5",
|
"name": "配液瓶(小)",
|
||||||
|
"quantity": "1",
|
||||||
|
"lockQuantity": "0",
|
||||||
|
"unit": "个",
|
||||||
"x": 2,
|
"x": 2,
|
||||||
"y": 2,
|
"y": 2,
|
||||||
"z": 1,
|
"z": 1,
|
||||||
"quantity": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"detail": [
|
|
||||||
{
|
|
||||||
"id": "3a1d4b7e-ee61-8fb3-9a39-2c2841c3c8d0",
|
|
||||||
"detailMaterialId": "3a1d4b7e-ee61-305c-fe30-2620017ca1bd",
|
|
||||||
"code": null,
|
|
||||||
"name": "test2",
|
|
||||||
"quantity": "1",
|
|
||||||
"lockQuantity": "0",
|
|
||||||
"unit": "块",
|
|
||||||
"x": 1,
|
|
||||||
"y": 1,
|
|
||||||
"z": 1,
|
|
||||||
"associateId": null,
|
"associateId": null,
|
||||||
"typeName": "5ml分液瓶",
|
"typeName": "配液瓶(小)",
|
||||||
"typeId": "3a192c2a-ebb7-58a1-480d-8b3863bf74f4"
|
"typeId": "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3a1d4b7e-ee61-ef5f-a7d1-f9399a4d3145",
|
|
||||||
"detailMaterialId": "3a1d4b7e-ee61-2f1d-6969-202ad3cbe226",
|
|
||||||
"code": null,
|
|
||||||
"name": "test2",
|
|
||||||
"quantity": "1",
|
|
||||||
"lockQuantity": "0",
|
|
||||||
"unit": "块",
|
|
||||||
"x": 1,
|
|
||||||
"y": 2,
|
|
||||||
"z": 1,
|
|
||||||
"associateId": null,
|
|
||||||
"typeName": "5ml分液瓶",
|
|
||||||
"typeId": "3a192c2a-ebb7-58a1-480d-8b3863bf74f4"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ from unilabos.ros.nodes.resource_tracker import ResourceTreeSet
|
|||||||
from unilabos.registry.registry import lab_registry
|
from unilabos.registry.registry import lab_registry
|
||||||
|
|
||||||
from unilabos.resources.bioyond.decks import BIOYOND_PolymerReactionStation_Deck
|
from unilabos.resources.bioyond.decks import BIOYOND_PolymerReactionStation_Deck
|
||||||
|
from unilabos.resources.bioyond.decks import YB_Deck
|
||||||
|
|
||||||
lab_registry.setup()
|
lab_registry.setup()
|
||||||
|
|
||||||
@@ -16,6 +17,8 @@ lab_registry.setup()
|
|||||||
type_mapping = {
|
type_mapping = {
|
||||||
"加样头(大)": ("YB_jia_yang_tou_da_1X1_carrier", "3a190ca0-b2f6-9aeb-8067-547e72c11469"),
|
"加样头(大)": ("YB_jia_yang_tou_da_1X1_carrier", "3a190ca0-b2f6-9aeb-8067-547e72c11469"),
|
||||||
"液": ("YB_1BottleCarrier", "3a190ca1-2add-2b23-f8e1-bbd348b7f790"),
|
"液": ("YB_1BottleCarrier", "3a190ca1-2add-2b23-f8e1-bbd348b7f790"),
|
||||||
|
"配液瓶(小)板": ("YB_6x_SmallSolutionBottleCarrier", "3a190c8b-3284-af78-d29f-9a69463ad047"),
|
||||||
|
"配液瓶(小)": ("YB_pei_ye_xiao_Bottler", "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -56,10 +59,10 @@ def bioyond_materials_liquidhandling_2() -> list[dict]:
|
|||||||
def test_resourcetreeset_from_plr() -> list[dict]:
|
def test_resourcetreeset_from_plr() -> list[dict]:
|
||||||
# 直接加载 bioyond_materials_reaction.json 文件
|
# 直接加载 bioyond_materials_reaction.json 文件
|
||||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
json_path = os.path.join(current_dir, "YB_materials_info.json")
|
json_path = os.path.join(current_dir, "test.json")
|
||||||
with open(json_path, "r", encoding="utf-8") as f:
|
with open(json_path, "r", encoding="utf-8") as f:
|
||||||
materials = json.load(f)
|
materials = json.load(f)
|
||||||
deck = BIOYOND_PolymerReactionStation_Deck("test_deck")
|
deck = YB_Deck("test_deck")
|
||||||
output = resource_bioyond_to_plr(materials, type_mapping=type_mapping, deck=deck)
|
output = resource_bioyond_to_plr(materials, type_mapping=type_mapping, deck=deck)
|
||||||
print(output)
|
print(output)
|
||||||
# print(deck.summary())
|
# print(deck.summary())
|
||||||
|
|||||||
Binary file not shown.
@@ -112,7 +112,7 @@ class BioyondCellWorkstation(BioyondWorkstation):
|
|||||||
|
|
||||||
return {"status": "received"}
|
return {"status": "received"}
|
||||||
|
|
||||||
def wait_for_order_finish(self, order_code: str, timeout: int = 1800) -> Dict[str, Any]:
|
def wait_for_order_finish(self, order_code: str, timeout: int = 36000) -> Dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
等待指定 orderCode 的 /report/order_finish 报送。
|
等待指定 orderCode 的 /report/order_finish 报送。
|
||||||
Args:
|
Args:
|
||||||
@@ -253,7 +253,7 @@ class BioyondCellWorkstation(BioyondWorkstation):
|
|||||||
def auto_feeding4to3(
|
def auto_feeding4to3(
|
||||||
self,
|
self,
|
||||||
# ★ 修改点:默认模板路径
|
# ★ 修改点:默认模板路径
|
||||||
xlsx_path: Optional[str] = "unilabos\\devices\\workstation\\bioyond_studio\\bioyond_cell\\material_template.xlsx",
|
xlsx_path: Optional[str] = "C:/ML/GitHub/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/material_template.xlsx",
|
||||||
# ---------------- WH4 - 加样头面 (Z=1, 12个点位) ----------------
|
# ---------------- WH4 - 加样头面 (Z=1, 12个点位) ----------------
|
||||||
WH4_x1_y1_z1_1_materialName: str = "", WH4_x1_y1_z1_1_quantity: float = 0.0,
|
WH4_x1_y1_z1_1_materialName: str = "", WH4_x1_y1_z1_1_quantity: float = 0.0,
|
||||||
WH4_x2_y1_z1_2_materialName: str = "", WH4_x2_y1_z1_2_quantity: float = 0.0,
|
WH4_x2_y1_z1_2_materialName: str = "", WH4_x2_y1_z1_2_quantity: float = 0.0,
|
||||||
@@ -391,73 +391,7 @@ class BioyondCellWorkstation(BioyondWorkstation):
|
|||||||
# 等待完成报送
|
# 等待完成报送
|
||||||
result = self.wait_for_order_finish(order_code)
|
result = self.wait_for_order_finish(order_code)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 3.30 自动化上料(老版本)
|
|
||||||
def auto_feeding4to3_from_xlsx(self, xlsx_path: str) -> Dict[str, Any]:
|
|
||||||
"""
|
|
||||||
根据固定模板解析 Excel:
|
|
||||||
- 四号手套箱加样头面 (2-13行, 3-7列)
|
|
||||||
- 四号手套箱原液瓶面 (15-23行, 3-9列)
|
|
||||||
- 三号手套箱人工堆栈 (26-40行, 3-7列)
|
|
||||||
"""
|
|
||||||
path = Path(xlsx_path)
|
|
||||||
if not path.exists():
|
|
||||||
raise FileNotFoundError(f"未找到 Excel 文件:{path}")
|
|
||||||
|
|
||||||
try:
|
|
||||||
df = pd.read_excel(path, sheet_name=0, header=None, engine="openpyxl")
|
|
||||||
except Exception as e:
|
|
||||||
raise RuntimeError(f"读取 Excel 失败:{e}")
|
|
||||||
|
|
||||||
items: List[Dict[str, Any]] = []
|
|
||||||
|
|
||||||
# 四号手套箱 - 加样头面(2-13行, 3-7列)
|
|
||||||
for _, row in df.iloc[1:13, 2:7].iterrows():
|
|
||||||
item = {
|
|
||||||
"sourceWHName": "四号手套箱堆栈",
|
|
||||||
"posX": int(row[2]),
|
|
||||||
"posY": int(row[3]),
|
|
||||||
"posZ": int(row[4]),
|
|
||||||
"materialName": str(row[5]).strip() if pd.notna(row[5]) else "",
|
|
||||||
"quantity": float(row[6]) if pd.notna(row[6]) else 0.0,
|
|
||||||
}
|
|
||||||
if item["materialName"]:
|
|
||||||
items.append(item)
|
|
||||||
|
|
||||||
# 四号手套箱 - 原液瓶面(15-23行, 3-9列)
|
|
||||||
for _, row in df.iloc[14:23, 2:9].iterrows():
|
|
||||||
item = {
|
|
||||||
"sourceWHName": "四号手套箱堆栈",
|
|
||||||
"posX": int(row[2]),
|
|
||||||
"posY": int(row[3]),
|
|
||||||
"posZ": int(row[4]),
|
|
||||||
"materialName": str(row[5]).strip() if pd.notna(row[5]) else "",
|
|
||||||
"quantity": float(row[6]) if pd.notna(row[6]) else 0.0,
|
|
||||||
"materialType": str(row[7]).strip() if pd.notna(row[7]) else "",
|
|
||||||
"targetWH": str(row[8]).strip() if pd.notna(row[8]) else "",
|
|
||||||
}
|
|
||||||
if item["materialName"]:
|
|
||||||
items.append(item)
|
|
||||||
|
|
||||||
# 三号手套箱人工堆栈(26-40行, 3-7列)
|
|
||||||
for _, row in df.iloc[25:40, 2:7].iterrows():
|
|
||||||
item = {
|
|
||||||
"sourceWHName": "三号手套箱人工堆栈",
|
|
||||||
"posX": int(row[2]),
|
|
||||||
"posY": int(row[3]),
|
|
||||||
"posZ": int(row[4]),
|
|
||||||
"materialType": str(row[5]).strip() if pd.notna(row[5]) else "",
|
|
||||||
"materialId": str(row[6]).strip() if pd.notna(row[6]) else "",
|
|
||||||
"quantity": 1 # 默认数量1
|
|
||||||
}
|
|
||||||
if item["materialId"] or item["materialType"]:
|
|
||||||
items.append(item)
|
|
||||||
|
|
||||||
response = self._post_lims("/api/lims/order/auto-feeding4to3", items)
|
|
||||||
self._wait_for_response_orders(response, "auto_feeding4to3_from_xlsx")
|
|
||||||
return response
|
|
||||||
|
|
||||||
def auto_batch_outbound_from_xlsx(self, xlsx_path: str) -> Dict[str, Any]:
|
def auto_batch_outbound_from_xlsx(self, xlsx_path: str) -> Dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
@@ -523,7 +457,7 @@ class BioyondCellWorkstation(BioyondWorkstation):
|
|||||||
})
|
})
|
||||||
|
|
||||||
response = self._post_lims("/api/lims/storage/auto-batch-out-bound", items)
|
response = self._post_lims("/api/lims/storage/auto-batch-out-bound", items)
|
||||||
self._wait_for_response_orders(response, "auto_batch_outbound_from_xlsx")
|
self.wait_for_response_orders(response, "auto_batch_outbound_from_xlsx")
|
||||||
return response
|
return response
|
||||||
|
|
||||||
# 2.14 新建实验
|
# 2.14 新建实验
|
||||||
@@ -1151,7 +1085,7 @@ if __name__ == "__main__":
|
|||||||
# result = ws.create_and_inbound_materials()
|
# result = ws.create_and_inbound_materials()
|
||||||
|
|
||||||
# 继续后续流程
|
# 继续后续流程
|
||||||
# logger.info(ws.auto_feeding4to3()) #搬运物料到3号箱
|
logger.info(ws.auto_feeding4to3()) #搬运物料到3号箱
|
||||||
# # # 使用正斜杠或 Path 对象来指定文件路径
|
# # # 使用正斜杠或 Path 对象来指定文件路径
|
||||||
# excel_path = Path("unilabos\\devices\\workstation\\bioyond_studio\\bioyond_cell\\2025092701.xlsx")
|
# excel_path = Path("unilabos\\devices\\workstation\\bioyond_studio\\bioyond_cell\\2025092701.xlsx")
|
||||||
# logger.info(ws.create_orders(excel_path))
|
# logger.info(ws.create_orders(excel_path))
|
||||||
|
|||||||
Binary file not shown.
@@ -8,7 +8,8 @@ import os
|
|||||||
# BioyondCellWorkstation 默认配置(包含所有必需参数)
|
# BioyondCellWorkstation 默认配置(包含所有必需参数)
|
||||||
API_CONFIG = {
|
API_CONFIG = {
|
||||||
# API 连接配置
|
# API 连接配置
|
||||||
"api_host": os.getenv("BIOYOND_API_HOST", "http://172.16.10.169:44388"),
|
# "api_host": os.getenv("BIOYOND_API_HOST", "http://172.21.32.65:44389"),#实机
|
||||||
|
"api_host": os.getenv("BIOYOND_API_HOST", "http://172.16.10.169:44388"),# 仿真机
|
||||||
"api_key": os.getenv("BIOYOND_API_KEY", "8A819E5C"),
|
"api_key": os.getenv("BIOYOND_API_KEY", "8A819E5C"),
|
||||||
"timeout": int(os.getenv("BIOYOND_TIMEOUT", "30")),
|
"timeout": int(os.getenv("BIOYOND_TIMEOUT", "30")),
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ API_CONFIG = {
|
|||||||
"report_token": os.getenv("BIOYOND_REPORT_TOKEN", "CHANGE_ME_TOKEN"),
|
"report_token": os.getenv("BIOYOND_REPORT_TOKEN", "CHANGE_ME_TOKEN"),
|
||||||
|
|
||||||
# HTTP 服务配置
|
# HTTP 服务配置
|
||||||
"HTTP_host": os.getenv("BIOYOND_HTTP_HOST", "172.21.33.174"), # HTTP服务监听地址,监听计算机飞连ip地址
|
"HTTP_host": os.getenv("BIOYOND_HTTP_HOST", "172.21.33.30"), # HTTP服务监听地址,监听计算机飞连ip地址
|
||||||
"HTTP_port": int(os.getenv("BIOYOND_HTTP_PORT", "8080")),
|
"HTTP_port": int(os.getenv("BIOYOND_HTTP_PORT", "8080")),
|
||||||
"debug_mode": False,# 调试模式
|
"debug_mode": False,# 调试模式
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -906,10 +906,11 @@ class CoinCellAssemblyWorkstation(WorkstationBase):
|
|||||||
|
|
||||||
return self.success
|
return self.success
|
||||||
|
|
||||||
def func_allpack_cmd(self, elec_num, elec_use_num, elec_vol:int=50, assembly_type:int=7, assembly_pressure:int=4200, file_path: str="D:\\coin_cell_data") -> bool:
|
def func_allpack_cmd(self, elec_num, elec_use_num, elec_vol:int=50, assembly_type:int=7, assembly_pressure:int=4200, file_path: str="C:\\Users\\67484\\Desktop") -> bool:
|
||||||
elec_num, elec_use_num, elec_vol, assembly_type, assembly_pressure = int(elec_num), int(elec_use_num), int(elec_vol), int(assembly_type), int(assembly_pressure)
|
elec_num, elec_use_num, elec_vol, assembly_type, assembly_pressure = int(elec_num), int(elec_use_num), int(elec_vol), int(assembly_type), int(assembly_pressure)
|
||||||
summary_csv_file = os.path.join(file_path, "duandian.csv")
|
summary_csv_file = os.path.join(file_path, "duandian.csv")
|
||||||
# 如果断点文件存在,先读取之前的进度
|
# 如果断点文件存在,先读取之前的进度
|
||||||
|
|
||||||
if os.path.exists(summary_csv_file):
|
if os.path.exists(summary_csv_file):
|
||||||
read_status_flag = True
|
read_status_flag = True
|
||||||
with open(summary_csv_file, 'r', newline='', encoding='utf-8') as csvfile:
|
with open(summary_csv_file, 'r', newline='', encoding='utf-8') as csvfile:
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ bioyond_cell:
|
|||||||
WH4_x5_y1_z1_5_quantity: 0.0
|
WH4_x5_y1_z1_5_quantity: 0.0
|
||||||
WH4_x5_y2_z1_10_materialName: ''
|
WH4_x5_y2_z1_10_materialName: ''
|
||||||
WH4_x5_y2_z1_10_quantity: 0.0
|
WH4_x5_y2_z1_10_quantity: 0.0
|
||||||
xlsx_path: unilabos\devices\workstation\bioyond_studio\bioyond_cell\样品导入模板.xlsx
|
xlsx_path: unilabos\devices\workstation\bioyond_studio\bioyond_cell\material_template.xlsx
|
||||||
handles: {}
|
handles: {}
|
||||||
placeholder_keys: {}
|
placeholder_keys: {}
|
||||||
result: {}
|
result: {}
|
||||||
@@ -463,7 +463,7 @@ bioyond_cell:
|
|||||||
default: 0.0
|
default: 0.0
|
||||||
type: number
|
type: number
|
||||||
xlsx_path:
|
xlsx_path:
|
||||||
default: unilabos\devices\workstation\bioyond_studio\bioyond_cell\样品导入模板.xlsx
|
default: unilabos\devices\workstation\bioyond_studio\bioyond_cell\material_template.xlsx
|
||||||
type: string
|
type: string
|
||||||
required: []
|
required: []
|
||||||
type: object
|
type: object
|
||||||
@@ -530,6 +530,42 @@ bioyond_cell:
|
|||||||
title: create_and_inbound_materials参数
|
title: create_and_inbound_materials参数
|
||||||
type: object
|
type: object
|
||||||
type: UniLabJsonCommand
|
type: UniLabJsonCommand
|
||||||
|
auto-create_material:
|
||||||
|
feedback: {}
|
||||||
|
goal: {}
|
||||||
|
goal_default:
|
||||||
|
location_name_or_id: null
|
||||||
|
material_name: null
|
||||||
|
type_id: null
|
||||||
|
warehouse_name: null
|
||||||
|
handles: {}
|
||||||
|
placeholder_keys: {}
|
||||||
|
result: {}
|
||||||
|
schema:
|
||||||
|
description: ''
|
||||||
|
properties:
|
||||||
|
feedback: {}
|
||||||
|
goal:
|
||||||
|
properties:
|
||||||
|
location_name_or_id:
|
||||||
|
type: string
|
||||||
|
material_name:
|
||||||
|
type: string
|
||||||
|
type_id:
|
||||||
|
type: string
|
||||||
|
warehouse_name:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- material_name
|
||||||
|
- type_id
|
||||||
|
- warehouse_name
|
||||||
|
type: object
|
||||||
|
result: {}
|
||||||
|
required:
|
||||||
|
- goal
|
||||||
|
title: create_material参数
|
||||||
|
type: object
|
||||||
|
type: UniLabJsonCommand
|
||||||
auto-create_materials:
|
auto-create_materials:
|
||||||
feedback: {}
|
feedback: {}
|
||||||
goal: {}
|
goal: {}
|
||||||
@@ -580,6 +616,43 @@ bioyond_cell:
|
|||||||
title: create_orders参数
|
title: create_orders参数
|
||||||
type: object
|
type: object
|
||||||
type: UniLabJsonCommand
|
type: UniLabJsonCommand
|
||||||
|
auto-create_sample:
|
||||||
|
feedback: {}
|
||||||
|
goal: {}
|
||||||
|
goal_default:
|
||||||
|
board_type: null
|
||||||
|
bottle_type: null
|
||||||
|
location_code: null
|
||||||
|
name: null
|
||||||
|
handles: {}
|
||||||
|
placeholder_keys: {}
|
||||||
|
result: {}
|
||||||
|
schema:
|
||||||
|
description: ''
|
||||||
|
properties:
|
||||||
|
feedback: {}
|
||||||
|
goal:
|
||||||
|
properties:
|
||||||
|
board_type:
|
||||||
|
type: string
|
||||||
|
bottle_type:
|
||||||
|
type: string
|
||||||
|
location_code:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- board_type
|
||||||
|
- bottle_type
|
||||||
|
- location_code
|
||||||
|
type: object
|
||||||
|
result: {}
|
||||||
|
required:
|
||||||
|
- goal
|
||||||
|
title: create_sample参数
|
||||||
|
type: object
|
||||||
|
type: UniLabJsonCommand
|
||||||
auto-order_list_v2:
|
auto-order_list_v2:
|
||||||
feedback: {}
|
feedback: {}
|
||||||
goal: {}
|
goal: {}
|
||||||
|
|||||||
Reference in New Issue
Block a user