class BlinkyTapeTestStatus::Base

Public Class Methods

new(options={}) click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 3
def initialize(options={})
  @tty ||= options[:tty] || best_guess_tty
  raise "No tty specified or discoved" unless @tty
end

Public Instance Methods

blue!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 8
def blue!
  write! 'sb'
end
color!(color) click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 12
def color!(color)
  write! color
end
flash!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 16
def flash!
  write! 'f'
end
pulse!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 20
def pulse!
  write! 'p'
end
quit!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 24
def quit!
  serial_port.flush
  serial_port.close
  @serial_port = nil
end
rainbow!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 30
def rainbow!
  write! 'x'
end
shutdown!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 34
def shutdown!
  blue!
  quit!
end
solid!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 39
def solid!
  write! 's'
end
test_sequence!() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 43
def test_sequence!
  write! 't'
end
write!(*commands) click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 47
def write!(*commands)
  commands.each do |command|
    serial_port.puts command
  end
  quit!
end

Protected Instance Methods

best_guess_tty() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 55
def best_guess_tty
  if Gem.win_platform?
    best_guess_tty_windows
  else
    Dir.glob "/dev/tty.usbmodem*" do |tty|
      return tty
    end
  end
end
best_guess_tty_windows() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 65
def best_guess_tty_windows
  0.upto(10) do |x|
    @tty = x
    begin
      serial_port
      @tty = nil
      return x
    rescue Errno::ENOENT
    end
  end
end
serial_port() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 77
def serial_port
  @serial_port ||= SerialPort.new @tty, 9600, 8, 1, SerialPort::NONE
end
valid_port() click to toggle source
# File lib/blinky_tape_test_status/base.rb, line 81
def valid_port
  return @valid_port if @valid_port
end