nmea_plus 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/gem/lib/nmea_plus.rb +63 -0
  3. data/gem/lib/nmea_plus/ais_message_factory.rb +17 -0
  4. data/gem/lib/nmea_plus/generated_parser/parser.rb +127 -0
  5. data/gem/lib/nmea_plus/generated_parser/tokenizer.rb +100 -0
  6. data/gem/lib/nmea_plus/message/ais/base_ais.rb +20 -0
  7. data/gem/lib/nmea_plus/message/ais/vdm.rb +100 -0
  8. data/gem/lib/nmea_plus/message/ais/vdm_payload/vdm_msg.rb +99 -0
  9. data/gem/lib/nmea_plus/message/ais/vdm_payload/vdm_msg1.rb +65 -0
  10. data/gem/lib/nmea_plus/message/ais/vdm_payload/vdm_msg5.rb +38 -0
  11. data/gem/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8.rb +43 -0
  12. data/gem/lib/nmea_plus/message/base.rb +172 -0
  13. data/gem/lib/nmea_plus/message/nmea/aam.rb +17 -0
  14. data/gem/lib/nmea_plus/message/nmea/alm.rb +25 -0
  15. data/gem/lib/nmea_plus/message/nmea/apa.rb +20 -0
  16. data/gem/lib/nmea_plus/message/nmea/apb.rb +14 -0
  17. data/gem/lib/nmea_plus/message/nmea/base_nmea.rb +36 -0
  18. data/gem/lib/nmea_plus/message/nmea/bod.rb +14 -0
  19. data/gem/lib/nmea_plus/message/nmea/bwc.rb +12 -0
  20. data/gem/lib/nmea_plus/message/nmea/bwr.rb +25 -0
  21. data/gem/lib/nmea_plus/message/nmea/bww.rb +11 -0
  22. data/gem/lib/nmea_plus/message/nmea/dbk.rb +13 -0
  23. data/gem/lib/nmea_plus/message/nmea/dbs.rb +11 -0
  24. data/gem/lib/nmea_plus/message/nmea/dbt.rb +11 -0
  25. data/gem/lib/nmea_plus/message/nmea/dcn.rb +26 -0
  26. data/gem/lib/nmea_plus/message/nmea/dpt.rb +12 -0
  27. data/gem/lib/nmea_plus/message/nmea/dtm.rb +24 -0
  28. data/gem/lib/nmea_plus/message/nmea/fsi.rb +14 -0
  29. data/gem/lib/nmea_plus/message/nmea/gbs.rb +18 -0
  30. data/gem/lib/nmea_plus/message/nmea/gga.rb +32 -0
  31. data/gem/lib/nmea_plus/message/nmea/glc.rb +23 -0
  32. data/gem/lib/nmea_plus/message/nmea/gll.rb +21 -0
  33. data/gem/lib/nmea_plus/message/nmea/gns.rb +28 -0
  34. data/gem/lib/nmea_plus/message/nmea/grs.rb +24 -0
  35. data/gem/lib/nmea_plus/message/nmea/gsa.rb +27 -0
  36. data/gem/lib/nmea_plus/message/nmea/gst.rb +18 -0
  37. data/gem/lib/nmea_plus/message/nmea/gsv.rb +29 -0
  38. data/gem/lib/nmea_plus/message/nmea/gtd.rb +15 -0
  39. data/gem/lib/nmea_plus/message/nmea/gxa.rb +22 -0
  40. data/gem/lib/nmea_plus/message/nmea/hdg.rb +20 -0
  41. data/gem/lib/nmea_plus/message/nmea/hdm.rb +11 -0
  42. data/gem/lib/nmea_plus/message/nmea/hdt.rb +11 -0
  43. data/gem/lib/nmea_plus/message/nmea/hfb.rb +12 -0
  44. data/gem/lib/nmea_plus/message/nmea/hsc.rb +12 -0
  45. data/gem/lib/nmea_plus/message/nmea/its.rb +11 -0
  46. data/gem/lib/nmea_plus/message/nmea/lcd.rb +23 -0
  47. data/gem/lib/nmea_plus/message/nmea/msk.rb +15 -0
  48. data/gem/lib/nmea_plus/message/nmea/mss.rb +15 -0
  49. data/gem/lib/nmea_plus/message/nmea/mtw.rb +12 -0
  50. data/gem/lib/nmea_plus/message/nmea/mwv.rb +15 -0
  51. data/gem/lib/nmea_plus/message/nmea/oln.rb +22 -0
  52. data/gem/lib/nmea_plus/message/nmea/osd.rb +19 -0
  53. data/gem/lib/nmea_plus/message/nmea/pashr.rb +21 -0
  54. data/gem/lib/nmea_plus/message/nmea/r00.rb +11 -0
  55. data/gem/lib/nmea_plus/message/nmea/rma.rb +30 -0
  56. data/gem/lib/nmea_plus/message/nmea/rmb.rb +30 -0
  57. data/gem/lib/nmea_plus/message/nmea/rmc.rb +33 -0
  58. data/gem/lib/nmea_plus/message/nmea/rot.rb +12 -0
  59. data/gem/lib/nmea_plus/message/nmea/rpm.rb +15 -0
  60. data/gem/lib/nmea_plus/message/nmea/rsa.rb +17 -0
  61. data/gem/lib/nmea_plus/message/nmea/rsd.rb +14 -0
  62. data/gem/lib/nmea_plus/message/nmea/rte.rb +16 -0
  63. data/gem/lib/nmea_plus/message/nmea/sfi.rb +18 -0
  64. data/gem/lib/nmea_plus/message/nmea/stn.rb +11 -0
  65. data/gem/lib/nmea_plus/message/nmea/tds.rb +11 -0
  66. data/gem/lib/nmea_plus/message/nmea/tfi.rb +13 -0
  67. data/gem/lib/nmea_plus/message/nmea/tpc.rb +13 -0
  68. data/gem/lib/nmea_plus/message/nmea/tpr.rb +13 -0
  69. data/gem/lib/nmea_plus/message/nmea/tpt.rb +13 -0
  70. data/gem/lib/nmea_plus/message/nmea/trf.rb +28 -0
  71. data/gem/lib/nmea_plus/message/nmea/ttm.rb +22 -0
  72. data/gem/lib/nmea_plus/message/nmea/vbw.rb +16 -0
  73. data/gem/lib/nmea_plus/message/nmea/vdr.rb +13 -0
  74. data/gem/lib/nmea_plus/message/nmea/vhw.rb +14 -0
  75. data/gem/lib/nmea_plus/message/nmea/vlw.rb +12 -0
  76. data/gem/lib/nmea_plus/message/nmea/vpw.rb +12 -0
  77. data/gem/lib/nmea_plus/message/nmea/vtg.rb +41 -0
  78. data/gem/lib/nmea_plus/message/nmea/vwr.rb +15 -0
  79. data/gem/lib/nmea_plus/message/nmea/wcv.rb +12 -0
  80. data/gem/lib/nmea_plus/message/nmea/wnc.rb +14 -0
  81. data/gem/lib/nmea_plus/message/nmea/wpl.rb +19 -0
  82. data/gem/lib/nmea_plus/message/nmea/xdr.rb +14 -0
  83. data/gem/lib/nmea_plus/message/nmea/xte.rb +16 -0
  84. data/gem/lib/nmea_plus/message/nmea/xtr.rb +12 -0
  85. data/gem/lib/nmea_plus/message/nmea/zda.rb +23 -0
  86. data/gem/lib/nmea_plus/message/nmea/zfo.rb +13 -0
  87. data/gem/lib/nmea_plus/message/nmea/ztg.rb +13 -0
  88. data/gem/lib/nmea_plus/message_factory.rb +68 -0
  89. data/gem/lib/nmea_plus/nmea_message_factory.rb +110 -0
  90. data/gem/lib/nmea_plus/version.rb +3 -0
  91. metadata +285 -0
@@ -0,0 +1,12 @@
1
+ require_relative "base_nmea"
2
+ require_relative "bwr"
3
+
4
+ module NMEAPlus
5
+ module Message
6
+ module NMEA
7
+ class BWC < NMEAPlus::Message::NMEA::BWR
8
+ field_reader :faa_mode, 13, :_string
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,25 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class BWR < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :utc_time, 1, :_utctime_hms
8
+
9
+ def waypoint_latitude
10
+ _degrees_minutes_to_decimal(@fields[2], @fields[3])
11
+ end
12
+
13
+ def waypoint_longitude
14
+ _degrees_minutes_to_decimal(@fields[4], @fields[5])
15
+ end
16
+
17
+ field_reader :bearing_true, 6, :_float
18
+ field_reader :bearing_magnetic, 8, :_float
19
+ field_reader :nautical_miles, 10, :_float
20
+ field_reader :waypoint_id, 12, :_string
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,11 @@
1
+ require_relative "base_nmea"
2
+ require_relative "bod"
3
+
4
+ module NMEAPlus
5
+ module Message
6
+ module NMEA
7
+ class BWW < NMEAPlus::Message::NMEA::BOD
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class DBK < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :depth_feet, 1, :_float
8
+ field_reader :depth_meters, 3, :_float
9
+ field_reader :depth_fathoms, 5, :_float
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ require_relative "base_nmea"
2
+ require_relative "dbk"
3
+
4
+ module NMEAPlus
5
+ module Message
6
+ module NMEA
7
+ class DBS < NMEAPlus::Message::NMEA::DBK
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require_relative "base_nmea"
2
+ require_relative "dbk"
3
+
4
+ module NMEAPlus
5
+ module Message
6
+ module NMEA
7
+ class DBT < NMEAPlus::Message::NMEA::DBK
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,26 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class DCN < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :decca_chain_id, 1, :_integer
8
+ field_reader :red_zone_id, 2, :_string
9
+ field_reader :red_position_line, 3, :_float
10
+ field_reader :red_master_line_ok?, 4, :_av_boolean
11
+ field_reader :green_zone_id, 5, :_string
12
+ field_reader :green_position_line, 6, :_float
13
+ field_reader :green_master_line_ok?, 7, :_av_boolean
14
+ field_reader :purple_zone_id, 8, :_string
15
+ field_reader :purple_position_line, 9, :_float
16
+ field_reader :purple_master_line_ok?, 10, :_av_boolean
17
+ field_reader :use_red_line_navigation?, 11, :_av_boolean
18
+ field_reader :use_green_line_navigation?, 12, :_av_boolean
19
+ field_reader :use_purple_line_navigation?, 13, :_av_boolean
20
+ field_reader :position_uncertainty, 14, :_float
21
+ field_reader :position_uncertainty_units, 15, :_string
22
+ field_reader :fix_data_basis, 16, :_integer
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,12 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class DPT < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :depth_meters, 1, :_float
8
+ field_reader :offset_distance, 2, :_float
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,24 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class DTM < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :code, 1, :_string
8
+ field_reader :subcode, 2, :_string
9
+
10
+ def latitude_offset
11
+ _nsew_signed_float(@fields[3], @fields[4])
12
+ end
13
+
14
+ def longitude_offset
15
+ _nsew_signed_float(@fields[5], @fields[6])
16
+ end
17
+
18
+ field_reader :altitude_meters, 7, :_float
19
+ field_reader :datum_name, 8, :_string
20
+
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,14 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class FSI < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :transmit_frequency, 1, :_float
8
+ field_reader :receive_frequency, 2, :_float
9
+ field_reader :communications_mode, 3, :_string
10
+ field_reader :power_level, 4, :_float
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GBS < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :fix_time, 1, :_utctime_hms
8
+ field_reader :expected_error_latitude_meters, 2, :_float
9
+ field_reader :expected_error_longitude_meters, 3, :_float
10
+ field_reader :expected_error_altitude_meters, 4, :_float
11
+ field_reader :failed_satelite_prn, 5, :_integer
12
+ field_reader :missed_detection_probability, 6, :_float
13
+ field_reader :failed_satellite_bias_meters, 7, :_float
14
+ field_reader :bias_standard_deviation, 8, :_float
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,32 @@
1
+
2
+ require_relative "base_nmea"
3
+
4
+ module NMEAPlus
5
+ module Message
6
+ module NMEA
7
+
8
+ class GGA < NMEAPlus::Message::NMEA::NMEAMessage
9
+ field_reader :fix_time, 1, :_utctime_hms
10
+
11
+ def latitude
12
+ _degrees_minutes_to_decimal(@fields[2], @fields[3])
13
+ end
14
+
15
+ def longitude
16
+ _degrees_minutes_to_decimal(@fields[4], @fields[5])
17
+ end
18
+
19
+ field_reader :fix_quality, 6, :_integer
20
+ field_reader :satellites, 7, :_integer
21
+ field_reader :horizontal_dilution, 8, :_float
22
+ field_reader :altitude, 9, :_float
23
+ field_reader :altitude_units, 10, :_string
24
+ field_reader :geoid_height, 11, :_float
25
+ field_reader :geoid_height_units, 12, :_string
26
+ field_reader :seconds_since_last_update, 13, :_float
27
+ field_reader :dgps_station_id, 14, :_integer
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,23 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GLC < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :gri_tenth_microseconds, 1, :_integer
8
+ field_reader :master_toa_microseconds, 2, :_float
9
+ field_reader :master_toa_signal?, 3, :_av_boolean
10
+ field_reader :time_difference_1_microseconds, 4, :_float
11
+ field_reader :time_difference_1_signal?, 5, :_av_boolean
12
+ field_reader :time_difference_2_microseconds, 6, :_float
13
+ field_reader :time_difference_2_signal?, 7, :_av_boolean
14
+ field_reader :time_difference_3_microseconds, 8, :_float
15
+ field_reader :time_difference_3_signal?, 9, :_av_boolean
16
+ field_reader :time_difference_4_microseconds, 10, :_float
17
+ field_reader :time_difference_4_signal?, 11, :_av_boolean
18
+ field_reader :time_difference_5_microseconds, 12, :_float
19
+ field_reader :time_difference_5_signal?, 13, :_av_boolean
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GLL < NMEAPlus::Message::NMEA::NMEAMessage
7
+ def latitude
8
+ _degrees_minutes_to_decimal(@fields[1], @fields[2])
9
+ end
10
+
11
+ def longitude
12
+ _degrees_minutes_to_decimal(@fields[3], @fields[4])
13
+ end
14
+
15
+ field_reader :fix_time, 5, :_utctime_hms
16
+ field_reader :valid?, 6, :_av_boolean
17
+ field_reader :faa_mode, 7, :_string
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,28 @@
1
+
2
+ require_relative "base_nmea"
3
+
4
+ module NMEAPlus
5
+ module Message
6
+ module NMEA
7
+ class GNS < NMEAPlus::Message::NMEA::NMEAMessage
8
+ field_reader :fix_time, 1, :_utctime_hms
9
+
10
+ def latitude
11
+ _degrees_minutes_to_decimal(@fields[2], @fields[3])
12
+ end
13
+
14
+ def longitude
15
+ _degrees_minutes_to_decimal(@fields[4], @fields[5])
16
+ end
17
+
18
+ field_reader :mode, 6, :_string
19
+ field_reader :satellites, 7, :_integer
20
+ field_reader :hdrop, 8, :_string
21
+ field_reader :altitude, 9, :_float
22
+ field_reader :geoidal_separation, 10, :_float
23
+ field_reader :data_age, 11, :_float
24
+ field_reader :differential_reference_station_id, 12, :_integer
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,24 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GRS < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :gga_fix_time, 1, :_utctime_hms
8
+ field_reader :gga_includes_residuals?, 2, :_10_boolean
9
+ field_reader :residual_satellite_1, 3, :_float
10
+ field_reader :residual_satellite_2, 4, :_float
11
+ field_reader :residual_satellite_3, 5, :_float
12
+ field_reader :residual_satellite_4, 6, :_float
13
+ field_reader :residual_satellite_5, 7, :_float
14
+ field_reader :residual_satellite_6, 8, :_float
15
+ field_reader :residual_satellite_7, 9, :_float
16
+ field_reader :residual_satellite_8, 10, :_float
17
+ field_reader :residual_satellite_9, 11, :_float
18
+ field_reader :residual_satellite_10, 12, :_float
19
+ field_reader :residual_satellite_11, 13, :_float
20
+ field_reader :residual_satellite_12, 14, :_float
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GSA < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :selection_mode, 1, :_string
8
+ field_reader :mode, 2, :_integer
9
+ field_reader :satellite1, 3, :_integer
10
+ field_reader :satellite2, 4, :_integer
11
+ field_reader :satellite3, 5, :_integer
12
+ field_reader :satellite4, 6, :_integer
13
+ field_reader :satellite5, 7, :_integer
14
+ field_reader :satellite6, 8, :_integer
15
+ field_reader :satellite7, 9, :_integer
16
+ field_reader :satellite8, 10, :_integer
17
+ field_reader :satellite9, 11, :_integer
18
+ field_reader :satellite10, 12, :_integer
19
+ field_reader :satellite11, 13, :_integer
20
+ field_reader :satellite12, 14, :_integer
21
+ field_reader :pdop, 15, :_string
22
+ field_reader :hdop, 16, :_string
23
+ field_reader :vdop, 17, :_string
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,18 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GST < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :gga_fix_time, 1, :_utctime_hms
8
+ field_reader :total_rms_standard_deviation, 2, :_float
9
+ field_reader :standard_deviation_semimajor_meters, 3, :_float
10
+ field_reader :standard_deviation_semiminor_meters, 4, :_float
11
+ field_reader :semimajor_error_ellipse_orientation_degrees, 5, :_float
12
+ field_reader :standard_deviation_latitude_meters, 6, :_float
13
+ field_reader :standard_deviation_longitude_meters, 7, :_float
14
+ field_reader :standard_deviation_altitude_meters, 8, :_float
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,29 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GSV < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :total_messages, 1, :_integer
8
+ field_reader :message_number, 2, :_integer
9
+ field_reader :satellites, 3, :_integer
10
+ field_reader :satellite1_prn, 4, :_integer
11
+ field_reader :satellite1_elevation_degrees, 5, :_float
12
+ field_reader :satellite1_azimuth_degrees, 6, :_float
13
+ field_reader :satellite1_snr, 7, :_float
14
+ field_reader :satellite2_prn, 8, :_integer
15
+ field_reader :satellite2_elevation_degrees, 9, :_float
16
+ field_reader :satellite2_azimuth_degrees, 10, :_float
17
+ field_reader :satellite2_snr, 11, :_float
18
+ field_reader :satellite3_prn, 12, :_integer
19
+ field_reader :satellite3_elevation_degrees, 13, :_float
20
+ field_reader :satellite3_azimuth_degrees, 14, :_float
21
+ field_reader :satellite3_snr, 15, :_float
22
+ field_reader :satellite4_prn, 16, :_integer
23
+ field_reader :satellite4_elevation_degrees, 17, :_float
24
+ field_reader :satellite4_azimuth_degrees, 18, :_float
25
+ field_reader :satellite4_snr, 19, :_float
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,15 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GTD < NMEAPlus::Message::NMEA::NMEAMessage
7
+ field_reader :difference1, 1, :_float
8
+ field_reader :difference2, 2, :_float
9
+ field_reader :difference3, 3, :_float
10
+ field_reader :difference4, 4, :_float
11
+ field_reader :difference5, 5, :_float
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,22 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ class GXA < NMEAPlus::Message::NMEA::NMEAMessage
7
+
8
+ field_reader :fix_time, 1, :_utctime_hms
9
+ def latitude
10
+ _degrees_minutes_to_decimal(@fields[2], @fields[3])
11
+ end
12
+
13
+ def longitude
14
+ _degrees_minutes_to_decimal(@fields[4], @fields[5])
15
+ end
16
+
17
+ field_reader :waypoint_id, 6, :_integer
18
+ field_reader :satellite, 7, :_integer
19
+ end
20
+ end
21
+ end
22
+ end