Class: GPS_PVT::Ntrip

Inherits:
Net::HTTP
  • Object
show all
Defined in:
lib/gps_pvt/ntrip.rb

Defined Under Namespace

Modules: MountPoints

Constant Summary collapse

SOURCE_TBL_ITEMS =
{
  :STR => [
      :type, :mountpoint, :identifier, :format, :format_details,
      :carrier, :nav_system, :network, :country, :latitude, :longitude,
      :nmea, :solution, :generator, :compression, :authentication, :fee, :bitrate],
  :CAS => [
      :type, :host, :port, :identifier, :operator,
      :nmea, :country, :latitude, :longitude, :fallback_host, :fallback_ip],
  :NET => [
      :type, :identifier, :operator, :authentication, :fee,
      :web_net, :web_str, :web_reg],
}

Instance Method Summary collapse

Instance Method Details

#generate_request(path, header) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/gps_pvt/ntrip.rb', line 79

def generate_request(path, header)
  req = Net::HTTP::Get.new(path, {
    'User-Agent' => "GPS_PVT NTRIP client/#{GPS_PVT::VERSION}",
    'Accept' => '*/*',
    'Ntrip-Version' => 'Ntrip/2.0',
  }.merge(header.select{|k, v| k.kind_of?(String)}))
  header.each{|k, v|
    next unless k.kind_of?(Symbol)
    req.send(k, *v)
  }
  req
end

#get_data(mount_point, header = {}, &b) ⇒ Object



94
95
96
97
98
# File 'lib/gps_pvt/ntrip.rb', line 94

def get_data(mount_point, header = {}, &b)
  request(generate_request("/#{mount_point}", header)){|res|
    res.read_body(&b)
  }
end

#get_source_table(header = {}, &b) ⇒ Object



91
92
93
# File 'lib/gps_pvt/ntrip.rb', line 91

def get_source_table(header = {}, &b)
  (b || proc{|str| Ntrip.parse_source_table(str)}).call(request(generate_request('/', header)).read_body)
end

#on_connectObject



30
31
32
33
# File 'lib/gps_pvt/ntrip.rb', line 30

def on_connect
  super
  @socket.define_singleton_method(:ntrip){true}
end