This commit is contained in:
Guangxin Zhang
2025-06-06 13:22:15 +08:00
parent 106d71e1db
commit 24ecb13b79

View File

@@ -23,8 +23,8 @@ class LiquidHandlerBiomek(LiquidHandlerAbstract):
该类用于处理Biomek液体处理器的特定操作。 该类用于处理Biomek液体处理器的特定操作。
""" """
def __init__(self, backend=None, deck=None, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(backend, deck, *args, **kwargs) super().__init__(*args, **kwargs)
self._status = "Idle" # 初始状态为 Idle self._status = "Idle" # 初始状态为 Idle
self._success = False # 初始成功状态为 False self._success = False # 初始成功状态为 False
self._status_queue = kwargs.get("status_queue", None) # 状态队列 self._status_queue = kwargs.get("status_queue", None) # 状态队列
@@ -32,46 +32,63 @@ class LiquidHandlerBiomek(LiquidHandlerAbstract):
self.py32_path = "/opt/py32" # Biomek的Python 3.2路径 self.py32_path = "/opt/py32" # Biomek的Python 3.2路径
self.aspirate_techniques = { self.aspirate_techniques = {
'MC P300 high':{ 'MC P300 high':{
"Solvent": "Water", 'Position': 'P1',
} 'Height': -2.0,
'Volume': '50',
'liquidtype': 'Well Contents',
'WellsX': 12,
'LabwareClass': 'Matrix96_750uL',
'AutoSelectPrototype': True,
'ColsFirst': True,
'CustomHeight': False,
'DataSetPattern': False,
'HeightFrom': 0,
'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, True),
'Prototype': 'MC P300 High',
'ReferencedPattern': '',
'RowsFirst': False,
'SectionExpression': '',
'SelectionInfo': (1,),
'SetMark': True,
'Source': True,
'StartAtMark': False,
'StartAtSelection': True,
'UseExpression': False},
} }
self.dispense_techniques = { self.dispense_techniques = {
'MC P300 high':{ 'MC P300 high':{
"Span8": False, 'Position': 'P11',
"Pod": "Pod1", 'Height': -2.0,
"Wash": False, 'Volume': '50',
"Dynamic?": True, 'liquidtype': 'Tip Contents',
"AutoSelectActiveWashTechnique": False, 'WellsX': 12,
"ActiveWashTechnique": "", 'LabwareClass': 'Matrix96_750uL',
"ChangeTipsBetweenDests": True, 'AutoSelectPrototype': True,
"ChangeTipsBetweenSources": False, 'ColsFirst': True,
"DefaultCaption": "", 'CustomHeight': False,
"UseExpression": False, 'DataSetPattern': False,
"LeaveTipsOn": False, 'HeightFrom': 0,
"MandrelExpression": "", 'LocalPattern': True,
"Repeats": "1", 'Operation': 'Dispense',
"RepeatsByVolume": False, 'OverrideHeight': False,
"Replicates": "1", '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),
"ShowTipHandlingDetails": False, 'Prototype': 'MC P300 High',
"ShowTransferDetails": True, 'ReferencedPattern': '',
"Span8Wash": False, 'RowsFirst': False,
"Span8WashVolume": "2", 'SectionExpression': '',
"Span8WasteVolume": "1", 'SelectionInfo': (1,),
"SplitVolume": False, 'SetMark': True,
"SplitVolumeCleaning": False, 'Source': False,
"Stop": "Destinations", 'StartAtMark': False,
"UseCurrentTips": False, 'StartAtSelection': True,
"UseDisposableTips": False, 'UseExpression': False}
"UseFixedTips": False,
"UseJIT": True,
"UseMandrelSelection": True,
"UseProbes": [True, True, True, True, True, True, True, True],
"WashCycles": "3",
"WashVolume": "110%",
"Wizard": False
}
} }
@classmethod @classmethod
def deserialize(cls, data: dict, allow_marshal: bool = False) -> LiquidHandler: def deserialize(cls, data: dict, allow_marshal: bool = False) -> LiquidHandler:
return LiquidHandler.deserialize(data, allow_marshal) return LiquidHandler.deserialize(data, allow_marshal)