require "rover_utils"
require "rover_environment"
require "acm"
require "aanderaa"
require "relay_board"
require "video"
require "rack"
require "ezservo"
require "singleton"

#This class is a singleton, to access it call 'Rover.instance'
class Rover
  include Singleton
  
  attr_accessor :acm, :relay, :video, :rack, :motors, :chamber_optode

  #in the future, this should be where a config file is read to initialize
  #all the rover's subsystems.
  def initialize
    self.relay = RelayBoard.new nil, "/dev/relay"
    self.acm = Acm.new nil, "/dev/acm"
    self.chamber_optode = Aanderaa.new nil, "/dev/chamber_optode"
    self.video = Video.new
    self.rack = Rack.rover
    self.motors = Ezservo.rover
    #self.acm = Tcm2Compass.new nil
  end
  
end
