Module: TaipParser

Defined in:
lib/taip_parser.rb,
lib/taip_parser/version.rb

Constant Summary collapse

RE =
/^>(\w)(\w{2})(\d{5})(\+|-)(\d{2})(\d{5})(\+|-)(\d{3})(\d{5})(\d{3})(\d{3})(\d)(\d)(?:;ID=(\w+))?;\*(\w+)<$/
VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.parse(body) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/taip_parser.rb', line 6

def self.parse(body)
	results = RE.match(body)

	if results
    {
      type:        results.captures[0], # report
      data:        results.captures[1], # position velocity
      time_of_day: results.captures[2],

      latitude:    "#{results.captures[3]}#{results.captures[4]}.#{results.captures[5]}",
      longitude:   "#{results.captures[6]}#{results.captures[7]}.#{results.captures[8]}",

      speed:       results.captures[9].to_i, # 15 mph
      heading:     results.captures[10].to_i, # 126 degrees (approx SE)
      source:      results.captures[11].to_i, # source of data
      age:         results.captures[12].to_i, # age of data

      id:          results.captures[13], # ID of vehicle
      checksum:    results.captures[14], # Checksum
    }
  else
    {}
  end
end