Source code for AFL.automation.prepare.Dummy_OT2_Driver

import numpy 
import time
from AFL.automation.APIServer.Driver import Driver


[docs] class Dummy_OT2_Driver(Driver): defaults={} defaults['execute_delay']=1
[docs] def __init__(self,overrides=None): self.app = None Driver.__init__(self,name='Dummy_OT2_Driver',defaults=self.gather_defaults(),overrides=overrides) self.reset_prep_targets()
[docs] def reset_prep_targets(self): self.prep_targets = []
[docs] def add_prep_targets(self,targets,reset=False): if reset: self.reset_prep_targets() self.prep_targets.extend(targets)
[docs] def get_prep_target(self): return self.prep_targets.pop(0)
[docs] def status(self): status = [] if len(self.prep_targets)>0: status.append(f'Next prep target: {self.prep_targets[0]}') status.append(f'Remaining prep targets: {len(self.prep_targets)}') else: status.append('No prep targets loaded') return status
[docs] @Driver.quickbar(qb={'button_text':'Refill Tipracks', 'params':{ 'mount':{'label':'Which Pipet left/right/both','type':'text','default':'both'}, }}) def reset_tipracks(self,mount='both'): print(f'Called reset tipracks')
[docs] @Driver.quickbar(qb={'button_text':'Home', }) def home(self,**kwargs): print(f'Homing robot')
[docs] def parse_well(self,loc): for i,loc_part in enumerate(list(loc)): if loc_part.isalpha(): break slot = loc[:i] well = loc[i:] return slot,well
[docs] def get_wells(self,locs): self.app.logger.debug(f'Converting locations to well objects: {locs}') wells = [] for loc in listify(locs): slot,well = self.parse_well(loc) labware = self.get_labware(slot) wells.append(labware[well]) self.app.logger.debug(f'Created well objects: {wells}') return wells
[docs] def get_labware(self,slot): print(f'Getting labware from slot \'{slot}\'')
[docs] def load_labware(self,name,slot,module=None,**kwargs): print(f'Loading labware {name} into slot {slot}')
[docs] def set_temp(self,slot,temp): '''Set the temperature of a tempdeck in slot slot''' print(f'Called set_temp with slot={slot} and temp={temp}')
[docs] def get_temp(self,slot): '''Get the temperature of a tempdeck in slot slot''' print(f'Called get_temp with slot={slot}')
[docs] def deactivate_temp(self,slot): '''Disablea tempdeck in slot slot''' print(f'Called deactivate_temp')
[docs] def set_shake(self,rpm): print(f'Called set_shake with rpm={rpm}')
[docs] def stop_shake(self): print(f'Called stop_shake')
[docs] def set_shaker_temp(self,temp): print(f'Called set_shaker_temp with temp={temp}')
[docs] def unlatch_shaker(self): print(f'Called latch_shaker')
[docs] def latch_shaker(self): print(f'Called latch_shaker')
[docs] def get_shaker_temp(self): print(f'Called get_shake_temp')
[docs] def get_shake_rpm(self): print(f'Called get_shake_rpm')
[docs] def get_shake_latch_status(self): print(f'Called get_shake_latch_status')
[docs] def load_instrument(self,name,mount,tip_rack_slots,**kwargs): print(f'Loading instrument {name} into {mount} with tip_racks={tip_rack_slots}')
[docs] @Driver.quickbar(qb={'button_text':'Transfer', 'params':{ 'source':{'label':'Source Well','type':'text','default':'1A1'}, 'dest':{'label':'Dest Well','type':'text','default':'1A1'}, 'volume':{'label':'Volume (uL)','type':'float','default':300} }}) def transfer(self,source,dest,volume,*args,**kwargs): print(f'Transferring from {volume} uL from {source} to {dest} with kwargs: {kwargs}')
[docs] def set_aspirate_rate(self,rate=150): print(f'Setting aspirate rate to {rate}')
[docs] def set_dispense_rate(self,rate=300): print(f'Setting dispense rate to {rate}')
[docs] def set_gantry_speed(self,speed=400): print(f'Setting gantry speed to {speed}')
if __name__ == '__main__': from AFL.automation.shared.launcher import *