class Artoo::Adaptors::Adaptor

The Adaptor class is the base class used to connect to a specific group of hardware devices. Examples would be an Arduino, a Sphero, or an ARDrone.

Derive a class from this class, in order to implement communication with a new type of hardware device. @see github.com/celluloid/celluloid-io Celluloid::IO Documentation

Attributes

additional_params[R]
parent[R]
port[R]

Public Class Methods

new(params={}) click to toggle source

Initialize an adaptor @param params [hash] @option params [String] :parent @option params [String] :port @option params [String] :additional_params

# File lib/artoo/adaptors/adaptor.rb, line 20
def initialize(params={})
  @parent = params[:parent]
  @port = params[:port]
  @additional_params = params[:additional_params]
  @connected = false
end

Public Instance Methods

connect() click to toggle source

Makes connected flag true @return [Boolean]

# File lib/artoo/adaptors/adaptor.rb, line 35
def connect
  @connected = true
end
connect_to() click to toggle source

Connects to configured port @return [TCPSocket] tcp socket of tcp port @return [String] port configured

# File lib/artoo/adaptors/adaptor.rb, line 60
def connect_to
  if port.is_tcp?
    connect_to_tcp
  else
    port.port
  end
end
connect_to_serial(speed=57600, data_bits=8, stop_bits=1, parity=nil) click to toggle source

Creates serial connection @param speed [int] @param data_bits [int] @param stop_bits [int] @param parity @return [SerialPort] new connection

# File lib/artoo/adaptors/adaptor.rb, line 84
def connect_to_serial(speed=57600, data_bits=8, stop_bits=1, parity=nil)
  require 'serialport'
  parity = ::SerialPort::NONE unless parity
  @sp = ::SerialPort.new(port.port, speed, data_bits, stop_bits, parity)
rescue LoadError
  Logger.error "Please 'gem install hybridgroup-serialport' for serial port support."
end
connect_to_tcp() click to toggle source

@return [TCPSocket] TCP socket connection

# File lib/artoo/adaptors/adaptor.rb, line 69
def connect_to_tcp
  @socket ||= TCPSocket.new(port.host, port.port)
end
connect_to_udp() click to toggle source

@return [UDPSocket] UDP socket connection

# File lib/artoo/adaptors/adaptor.rb, line 74
def connect_to_udp
  @udp_socket ||= UDPSocket.new
end
connected?() click to toggle source

@return [Boolean] connected flag status

# File lib/artoo/adaptors/adaptor.rb, line 53
def connected?
  @connected == true
end
disconnect() click to toggle source

Makes connected flag false @return [Boolean]

# File lib/artoo/adaptors/adaptor.rb, line 41
def disconnect
  @connected = false
  true
end
finalize() click to toggle source

Closes connection with device if connected @return [Boolean]

# File lib/artoo/adaptors/adaptor.rb, line 29
def finalize
  disconnect if connected?
end
reconnect() click to toggle source

Makes connected flag true @return [Boolean] true unless connected

# File lib/artoo/adaptors/adaptor.rb, line 48
def reconnect
  connect unless connected?
end