Class: OpenTrons::Instruments

Inherits:
Object
  • Object
show all
Defined in:
lib/opentrons/instruments.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(protocol) ⇒ Instruments

Returns a new instance of Instruments.



16
17
18
19
# File 'lib/opentrons/instruments.rb', line 16

def initialize(protocol)
  @protocol = protocol
  @instrument_hash = {}
end

Instance Attribute Details

#instrument_hashObject

Returns the value of attribute instrument_hash.



14
15
16
# File 'lib/opentrons/instruments.rb', line 14

def instrument_hash
  @instrument_hash
end

#protocolObject

Returns the value of attribute protocol.



14
15
16
# File 'lib/opentrons/instruments.rb', line 14

def protocol
  @protocol
end

Instance Method Details

#add_pipette(model, mount: "left", tip_racks: [], tip_model: nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/opentrons/instruments.rb', line 33

def add_pipette(model, mount: "left", tip_racks: [], tip_model: nil)
  instrument_hash.each do |key, item|
    if item.mount == mount
      raise ArgumentError.new "Cannot place #{model} on mount #{mount} (already occupied)."
    end
  end

  generated_id = ""
  loop do
    generated_id = model + "-" + rand(100000...999999).to_s
    break if !(instrument_hash.key? generated_id)
  end

  if model.include? "multi"
    pipette = MultiPipette.new(protocol, self, model, mount: mount, tip_racks: tip_racks, tip_model: tip_model)
  else
    pipette = Pipette.new(protocol, self, model, mount: mount, tip_racks: tip_racks, tip_model: tip_model)
  end

  instrument_hash[generated_id] = pipette

  return pipette
end

#inspectObject



69
70
71
# File 'lib/opentrons/instruments.rb', line 69

def inspect
  to_s
end

#to_hashObject



57
58
59
60
61
62
63
# File 'lib/opentrons/instruments.rb', line 57

def to_hash
  as_hash = {}
  instrument_hash.each do |key, item|
    as_hash[key] = item.to_hash
  end
  return as_hash
end

#to_sObject



65
66
67
# File 'lib/opentrons/instruments.rb', line 65

def to_s
  "<OpenTrons::Instruments:0x#{self.__id__.to_s(16)}>"
end