class Argus::NavData

Attributes

options[RW]
sequence_number[RW]
state_mask[RW]
vision_flag[RW]

Public Class Methods

bit_mask_readers(*names) click to toggle source
   # File lib/argus/nav_data.rb
14 def self.bit_mask_readers(*names)
15   names.each.with_index do |name, bit_number|
16     if name.is_a?(Array)
17       name, off_value, on_value = name
18     else
19       off_value = false
20       on_value = true
21     end
22     define_method(name) { @state_mask[bit_number] == 0 ? off_value : on_value }
23   end
24 end
new(data) click to toggle source
  # File lib/argus/nav_data.rb
5 def initialize(data)
6   @data = data
7   parse_nav_data(@data)
8 end

Public Instance Methods

raw() click to toggle source
   # File lib/argus/nav_data.rb
10 def raw
11   @data
12 end

Private Instance Methods

parse_nav_data(data) click to toggle source
   # File lib/argus/nav_data.rb
63 def parse_nav_data(data)
64   tag, @state_mask, @sequence_number, @vision_flag = data.unpack("VVVV")
65   parse_nav_options(data[16..-1])
66 end
parse_nav_options(data) click to toggle source
   # File lib/argus/nav_data.rb
68 def parse_nav_options(data)
69   @options = []
70   loop do
71     opt = NavOption.parse(data)
72     data = data[opt.size .. -1]
73     @options << opt
74     break if data.nil? || data.empty?
75   end
76 end