class OGNClient::SenderBeacon

Constants

ADDRESS_TYPES
SENDER_BEACON_PATTERN
SENDER_TYPES

Attributes

address_type[R]
climb_rate[R]
errors[R]
flarm_hardware_version[R]
flarm_id[R]
flarm_software_version[R]
flight_level[R]
frequency_offset[R]
gps_accuracy[R]
id[R]
no_tracking[R]
proximity[R]
sender_type[R]
signal_power[R]
signal_quality[R]
stealth_mode[R]
turn_rate[R]

Private Instance Methods

climb_rate=(raw) click to toggle source
   # File lib/ogn_client/messages/sender_beacon.rb
94 def climb_rate=(raw)
95   @climb_rate = (raw.to_i / 60.0 / 3.2808).round(1)
96 end
details=(raw) click to toggle source
   # File lib/ogn_client/messages/sender_beacon.rb
78 def details=(raw)
79   byte = raw.to_i(16)
80   @stealth_mode = !(byte & 0b10000000).zero?
81   @no_tracking = !(byte & 0b01000000).zero?
82   @address_type = ADDRESS_TYPES.fetch((byte & 0b00000011), :unknown)
83   @sender_type = SENDER_TYPES.fetch((byte & 0b00111100) >> 2, :unknown)
84 end
errors=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
110 def errors=(raw)
111   @errors = raw.to_i
112 end
flarm_hardware_version=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
126 def flarm_hardware_version=(raw)
127   @flarm_hardware_version = raw.to_i(16)
128 end
flarm_id=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
130 def flarm_id=(raw)
131   @flarm_id = raw
132 end
flarm_software_version=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
122 def flarm_software_version=(raw)
123   @flarm_software_version = raw
124 end
flight_level=(raw) click to toggle source
   # File lib/ogn_client/messages/sender_beacon.rb
90 def flight_level=(raw)
91   @flight_level = raw.to_f.round(2)
92 end
frequency_offset=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
114 def frequency_offset=(raw)
115   @frequency_offset = raw.to_f.round(1)
116 end
gps_accuracy=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
118 def gps_accuracy=(raw)
119   @gps_accuracy = raw.split('x').map(&:to_i)
120 end
id=(raw) click to toggle source
   # File lib/ogn_client/messages/sender_beacon.rb
86 def id=(raw)
87   @id = raw
88 end
parse(raw, date: nil) click to toggle source
Calls superclass method OGNClient::Message::parse
   # File lib/ogn_client/messages/sender_beacon.rb
65     def parse(raw, date: nil)
66       raw.match SENDER_BEACON_PATTERN do |match|
67         super unless @raw
68         %i(details id flight_level climb_rate turn_rate signal_power signal_quality errors frequency_offset gps_accuracy flarm_software_version flarm_hardware_version flarm_id proximity).each do |attr|
69           send("#{attr}=", match[attr]) if match[attr]
70         end
71 # NOTE: [@svoop] [ruby21] workaround necessary until support for ruby21 is removed
72 #       self.flarm_id ||= id if address_type == :icao || address_type == :flarm
73         self.flarm_id = id if !flarm_id && (address_type == :icao || address_type == :flarm)
74         self
75       end
76     end
proximity=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
134 def proximity=(raw)
135   @proximity = raw.split(/\shear/)
136 end
signal_power=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
102 def signal_power=(raw)
103   @signal_power = raw.to_f.round(3)
104 end
signal_quality=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
106 def signal_quality=(raw)
107   @signal_quality = raw.to_f.round(1)
108 end
turn_rate=(raw) click to toggle source
    # File lib/ogn_client/messages/sender_beacon.rb
 98 def turn_rate=(raw)
 99   @turn_rate = (raw.to_i / 4.0).round(1)
100 end