nmea_plus 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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