class ConfigGeneral

  attr_reader :sim, :short_cycles, :long_cycles, :log_dir_prefix, \
   :surface_check_interval, :status_report_interval, :abort_check_interval

  def initialize
    @sim = false
    @short_cycles = 2
    @long_cycles = 1
    @log_dir_prefix = "Test"
    @surface_check_interval = 60
    @status_report_interval = 900
    @abort_check_interval = 120
  end
end

class ConfigInstruments

  attr_reader :ref_optode_sn, :port_optode_sn, :stbd_optode_sn, :acm_sn

  def initialize
    @ref_optode_sn = "849"
    @port_optode_sn = "850"
    @stbd_optode_sn = "851"
    @acm_sn = "1864 25OCT06"
  end
end

class ConfigLaunch
  def initialize
  end
end

class ConfigMovement
  def initialize
  end
end

class ConfigMeasurement
  def initialize
  end
end


class RoverConfig

  attr_reader :general, :instr, :launch, :move, :measure

  def initialize
    @general = ConfigGeneral.new
    @instr = ConfigInstruments.new
    @launch = ConfigLaunch.new
    @move = ConfigMovement.new
    @measure = ConfigMeasurement.new
  end

end

cfg = RoverConfig.new
puts("Sim = #{cfg.general.sim}")

