mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2026-02-04 05:15:10 +00:00
Compare commits
4 Commits
6ae77e0408
...
0bdb888108
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0bdb888108 | ||
|
|
b0ffe7df90 | ||
|
|
c7e610c1da | ||
|
|
3f4d247127 |
@@ -10,6 +10,7 @@ from pylabrobot.resources import (
|
||||
Container,
|
||||
Coordinate,
|
||||
)
|
||||
import copy
|
||||
from unilabos_msgs.msg import Resource
|
||||
|
||||
from unilabos.ros.nodes.resource_tracker import DeviceNodeResourceTracker # type: ignore
|
||||
@@ -61,7 +62,7 @@ class LiquidHandlerBiomek:
|
||||
'LocalPattern': True,
|
||||
'Operation': 'Aspirate',
|
||||
'OverrideHeight': False,
|
||||
'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True),
|
||||
'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True),
|
||||
'Prototype': 'MC P300 High',
|
||||
'ReferencedPattern': '',
|
||||
'RowsFirst': False,
|
||||
@@ -450,8 +451,8 @@ class LiquidHandlerBiomek:
|
||||
"""
|
||||
items = []
|
||||
|
||||
asp_params = self.aspirate_techniques.get(aspirate_techniques, {})
|
||||
dis_params = self.dispense_techniques.get(dispense_techniques, {})
|
||||
asp_params = copy.deepcopy(self.aspirate_techniques[aspirate_techniques])
|
||||
dis_params = copy.deepcopy(self.dispense_techniques[dispense_techniques])
|
||||
|
||||
asp_params['Position'] = source
|
||||
dis_params['Position'] = target
|
||||
@@ -564,7 +565,7 @@ class LiquidHandlerBiomek:
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
|
||||
print("=== Biomek完整流程测试 ===")
|
||||
print("包含: 仪器设置 + 完整实验步骤")
|
||||
|
||||
@@ -968,15 +969,6 @@ if __name__ == "__main__":
|
||||
"liquid_volume": [],
|
||||
"liquid_input_wells": []
|
||||
},
|
||||
{
|
||||
"id": "working plate on P12",
|
||||
"parent": "deck",
|
||||
"slot_on_deck": "P12",
|
||||
"class_name": "BCDeep96Round",
|
||||
"liquid_type": [],
|
||||
"liquid_volume": [],
|
||||
"liquid_input_wells": []
|
||||
},
|
||||
{
|
||||
"id": "working plate on P13",
|
||||
"parent": "deck",
|
||||
|
||||
@@ -15,6 +15,7 @@ from typing import List, Sequence, Optional, Union, Literal
|
||||
import json
|
||||
import pathlib
|
||||
from typing import Sequence, Optional, List, Union, Literal
|
||||
import copy
|
||||
|
||||
|
||||
|
||||
@@ -67,7 +68,7 @@ class LiquidHandlerBiomek:
|
||||
'LocalPattern': True,
|
||||
'Operation': 'Aspirate',
|
||||
'OverrideHeight': False,
|
||||
'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True),
|
||||
'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True),
|
||||
'Prototype': 'MC P300 High',
|
||||
'ReferencedPattern': '',
|
||||
'RowsFirst': False,
|
||||
@@ -351,8 +352,9 @@ class LiquidHandlerBiomek:
|
||||
"""
|
||||
items = []
|
||||
|
||||
asp_params = self.aspirate_techniques.get(aspirate_techniques, {})
|
||||
dis_params = self.dispense_techniques.get(dispense_techniques, {})
|
||||
asp_params = copy.deepcopy(self.aspirate_techniques[aspirate_techniques])
|
||||
dis_params = copy.deepcopy(self.dispense_techniques[dispense_techniques])
|
||||
|
||||
|
||||
asp_params['Position'] = source
|
||||
dis_params['Position'] = target
|
||||
@@ -403,7 +405,9 @@ class LiquidHandlerBiomek:
|
||||
transfer_params["Solvent"] = 'Water'
|
||||
transfer_params["TipLocation"] = tip_rack
|
||||
tmp={'transfer': transfer_params}
|
||||
|
||||
self.temp_protocol["steps"].append(tmp)
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -872,15 +876,6 @@ if __name__ == "__main__":
|
||||
"liquid_volume": [],
|
||||
"liquid_input_wells": []
|
||||
},
|
||||
{
|
||||
"id": "working plate on P12",
|
||||
"parent": "deck",
|
||||
"slot_on_deck": "P12",
|
||||
"class_name": "BCDeep96Round",
|
||||
"liquid_type": [],
|
||||
"liquid_volume": [],
|
||||
"liquid_input_wells": []
|
||||
},
|
||||
{
|
||||
"id": "working plate on P13",
|
||||
"parent": "deck",
|
||||
@@ -968,6 +963,7 @@ if __name__ == "__main__":
|
||||
print(f"步骤 {step['step_number']}: {description}")
|
||||
|
||||
if operation == 'transfer':
|
||||
|
||||
handler.transfer_biomek(
|
||||
source=parameters['source'],
|
||||
target=parameters['target'],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -643,222 +643,6 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"P12": [
|
||||
{
|
||||
"Properties": {
|
||||
"Name": "working plate on P12",
|
||||
"Device": "",
|
||||
"liquidtype": "Water",
|
||||
"BarCode": "",
|
||||
"SenseEveryTime": false
|
||||
},
|
||||
"Known": true,
|
||||
"Class": "LabwareClasses\\BCDeep96Round",
|
||||
"DataSets": {
|
||||
"Volume": {}
|
||||
},
|
||||
"RuntimeDataSets": {
|
||||
"Volume": {}
|
||||
},
|
||||
"EvalAmounts": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"Nominal": false,
|
||||
"EvalLiquids": [
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water",
|
||||
"Water"
|
||||
]
|
||||
}
|
||||
],
|
||||
"P13": [
|
||||
{
|
||||
"Properties": {
|
||||
@@ -1326,9 +1110,9 @@
|
||||
"Pod": "Pod1",
|
||||
"items": [
|
||||
{
|
||||
"Position": "P12",
|
||||
"Position": "P1",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "50",
|
||||
"liquidtype": "Well Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -1435,6 +1219,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -1451,9 +1236,9 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P11",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "50",
|
||||
"liquidtype": "Tip Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -1626,9 +1411,9 @@
|
||||
"Pod": "Pod1",
|
||||
"items": [
|
||||
{
|
||||
"Position": "P12",
|
||||
"Position": "P2",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "100",
|
||||
"liquidtype": "Well Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -1735,6 +1520,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -1751,9 +1537,9 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P11",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "100",
|
||||
"liquidtype": "Tip Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -1957,7 +1743,7 @@
|
||||
{
|
||||
"Position": "P12",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "150",
|
||||
"liquidtype": "Well Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -2064,6 +1850,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -2080,9 +1867,9 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P22",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "150",
|
||||
"liquidtype": "Tip Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -2255,9 +2042,9 @@
|
||||
"Pod": "Pod1",
|
||||
"items": [
|
||||
{
|
||||
"Position": "P12",
|
||||
"Position": "P3",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Well Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -2364,6 +2151,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -2380,9 +2168,9 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P12",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Tip Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -2595,7 +2383,7 @@
|
||||
{
|
||||
"Position": "P12",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Well Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -2702,6 +2490,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -2718,9 +2507,9 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P22",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Tip Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -2893,9 +2682,9 @@
|
||||
"Pod": "Pod1",
|
||||
"items": [
|
||||
{
|
||||
"Position": "P12",
|
||||
"Position": "P3",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Well Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -3002,6 +2791,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -3018,9 +2808,9 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P12",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Tip Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -3233,7 +3023,7 @@
|
||||
{
|
||||
"Position": "P12",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Well Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -3340,6 +3130,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -3356,9 +3147,9 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P22",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"Volume": "400",
|
||||
"liquidtype": "Tip Contents",
|
||||
"WellsX": 12,
|
||||
"LabwareClass": "Matrix96_750uL",
|
||||
@@ -3548,7 +3339,7 @@
|
||||
"Pod": "Pod1",
|
||||
"items": [
|
||||
{
|
||||
"Position": "P12",
|
||||
"Position": "P4",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"liquidtype": "Well Contents",
|
||||
@@ -3657,6 +3448,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
@@ -3673,7 +3465,7 @@
|
||||
"UseExpression": false
|
||||
},
|
||||
{
|
||||
"Position": "P14",
|
||||
"Position": "P13",
|
||||
"Height": -2.0,
|
||||
"Volume": "40",
|
||||
"liquidtype": "Tip Contents",
|
||||
@@ -4012,6 +3804,7 @@
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"Prototype": "MC P300 High",
|
||||
|
||||
Reference in New Issue
Block a user