nmea_plus 1.0.19 → 1.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +23 -4
  3. data/lib/nmea_plus/ais_message_factory.rb +2 -3
  4. data/lib/nmea_plus/message/ais/vdo.rb +14 -0
  5. data/lib/nmea_plus/message/base.rb +17 -9
  6. data/lib/nmea_plus/message/nmea/apa.rb +24 -0
  7. data/lib/nmea_plus/message/nmea/base_nmea.rb +2 -2
  8. data/lib/nmea_plus/message/nmea/bec.rb +12 -0
  9. data/lib/nmea_plus/message/nmea/ber.rb +17 -0
  10. data/lib/nmea_plus/message/nmea/bpi.rb +17 -0
  11. data/lib/nmea_plus/message/nmea/bwr.rb +10 -0
  12. data/lib/nmea_plus/message/nmea/dbk.rb +9 -0
  13. data/lib/nmea_plus/message/nmea/dbs.rb +4 -0
  14. data/lib/nmea_plus/message/nmea/dcn.rb +47 -1
  15. data/lib/nmea_plus/message/nmea/dru.rb +33 -0
  16. data/lib/nmea_plus/message/nmea/gda.rb +39 -0
  17. data/lib/nmea_plus/message/nmea/gdf.rb +19 -0
  18. data/lib/nmea_plus/message/nmea/gdp.rb +19 -0
  19. data/lib/nmea_plus/message/nmea/gla.rb +20 -0
  20. data/lib/nmea_plus/message/nmea/glf.rb +19 -0
  21. data/lib/nmea_plus/message/nmea/glp.rb +19 -0
  22. data/lib/nmea_plus/message/nmea/goa.rb +20 -0
  23. data/lib/nmea_plus/message/nmea/gof.rb +19 -0
  24. data/lib/nmea_plus/message/nmea/gop.rb +19 -0
  25. data/lib/nmea_plus/message/nmea/gtd.rb +12 -0
  26. data/lib/nmea_plus/message/nmea/gxa.rb +14 -18
  27. data/lib/nmea_plus/message/nmea/gxf.rb +19 -0
  28. data/lib/nmea_plus/message/nmea/gxp.rb +19 -0
  29. data/lib/nmea_plus/message/nmea/hcc.rb +17 -0
  30. data/lib/nmea_plus/message/nmea/hcd.rb +28 -0
  31. data/lib/nmea_plus/message/nmea/hdg.rb +0 -1
  32. data/lib/nmea_plus/message/nmea/hdm.rb +5 -0
  33. data/lib/nmea_plus/message/nmea/hdt.rb +2 -0
  34. data/lib/nmea_plus/message/nmea/htc.rb +11 -0
  35. data/lib/nmea_plus/message/nmea/hvd.rb +23 -0
  36. data/lib/nmea_plus/message/nmea/hvm.rb +15 -0
  37. data/lib/nmea_plus/message/nmea/ima.rb +40 -0
  38. data/lib/nmea_plus/message/nmea/mda.rb +44 -0
  39. data/lib/nmea_plus/message/nmea/mhu.rb +22 -0
  40. data/lib/nmea_plus/message/nmea/mmb.rb +19 -0
  41. data/lib/nmea_plus/message/nmea/mta.rb +16 -0
  42. data/lib/nmea_plus/message/nmea/mwh.rb +18 -0
  43. data/lib/nmea_plus/message/nmea/mws.rb +18 -0
  44. data/lib/nmea_plus/message/nmea/oln.rb +42 -3
  45. data/lib/nmea_plus/message/nmea/olw.rb +15 -0
  46. data/lib/nmea_plus/message/nmea/omp.rb +16 -0
  47. data/lib/nmea_plus/message/nmea/onz.rb +14 -0
  48. data/lib/nmea_plus/message/nmea/{pashr.rb → proprietary/pashr.rb} +1 -1
  49. data/lib/nmea_plus/message/nmea/r00.rb +9 -1
  50. data/lib/nmea_plus/message/nmea/rmc.rb +1 -1
  51. data/lib/nmea_plus/message/nmea/rnn.rb +18 -0
  52. data/lib/nmea_plus/message/nmea/sbk.rb +17 -0
  53. data/lib/nmea_plus/message/nmea/scd.rb +22 -0
  54. data/lib/nmea_plus/message/nmea/scy.rb +17 -0
  55. data/lib/nmea_plus/message/nmea/sdb.rb +14 -0
  56. data/lib/nmea_plus/message/nmea/sgd.rb +21 -0
  57. data/lib/nmea_plus/message/nmea/sgr.rb +22 -0
  58. data/lib/nmea_plus/message/nmea/siu.rb +21 -0
  59. data/lib/nmea_plus/message/nmea/slc.rb +66 -0
  60. data/lib/nmea_plus/message/nmea/snc.rb +35 -0
  61. data/lib/nmea_plus/message/nmea/snu.rb +18 -0
  62. data/lib/nmea_plus/message/nmea/sps.rb +14 -0
  63. data/lib/nmea_plus/message/nmea/ssf.rb +29 -0
  64. data/lib/nmea_plus/message/nmea/stc.rb +12 -0
  65. data/lib/nmea_plus/message/nmea/str.rb +38 -0
  66. data/lib/nmea_plus/message/nmea/sys.rb +29 -0
  67. data/lib/nmea_plus/message/nmea/tec.rb +20 -0
  68. data/lib/nmea_plus/message/nmea/tep.rb +14 -0
  69. data/lib/nmea_plus/message/nmea/tga.rb +20 -0
  70. data/lib/nmea_plus/message/nmea/tif.rb +35 -0
  71. data/lib/nmea_plus/message/nmea/trf.rb +17 -1
  72. data/lib/nmea_plus/message/nmea/trp.rb +14 -0
  73. data/lib/nmea_plus/message/nmea/trs.rb +41 -0
  74. data/lib/nmea_plus/message/nmea/vcd.rb +23 -0
  75. data/lib/nmea_plus/message/nmea/vpe.rb +17 -0
  76. data/lib/nmea_plus/message/nmea/vta.rb +23 -0
  77. data/lib/nmea_plus/message/nmea/vti.rb +23 -0
  78. data/lib/nmea_plus/message/nmea/vwe.rb +14 -0
  79. data/lib/nmea_plus/message/nmea/vwr.rb +15 -2
  80. data/lib/nmea_plus/message/nmea/vwt.rb +35 -0
  81. data/lib/nmea_plus/message/nmea/wdc.rb +20 -0
  82. data/lib/nmea_plus/message/nmea/wdr.rb +12 -0
  83. data/lib/nmea_plus/message/nmea/wfm.rb +12 -0
  84. data/lib/nmea_plus/message/nmea/wnc.rb +7 -0
  85. data/lib/nmea_plus/message/nmea/wnr.rb +12 -0
  86. data/lib/nmea_plus/message/nmea/ywp.rb +17 -0
  87. data/lib/nmea_plus/message/nmea/yws.rb +26 -0
  88. data/lib/nmea_plus/message/nmea/zaa.rb +14 -0
  89. data/lib/nmea_plus/message/nmea/zcd.rb +25 -0
  90. data/lib/nmea_plus/message/nmea/zev.rb +25 -0
  91. data/lib/nmea_plus/message/nmea/zfi.rb +15 -0
  92. data/lib/nmea_plus/message/nmea/zfo.rb +1 -1
  93. data/lib/nmea_plus/message/nmea/zlz.rb +19 -0
  94. data/lib/nmea_plus/message/nmea/zpi.rb +15 -0
  95. data/lib/nmea_plus/message/nmea/zta.rb +15 -0
  96. data/lib/nmea_plus/message/nmea/zte.rb +15 -0
  97. data/lib/nmea_plus/message/nmea/zti.rb +12 -0
  98. data/lib/nmea_plus/message/nmea/zwp.rb +12 -0
  99. data/lib/nmea_plus/message/nmea/zzu.rb +15 -0
  100. data/lib/nmea_plus/nmea_message_factory.rb +82 -2
  101. data/lib/nmea_plus/version.rb +1 -1
  102. metadata +79 -3
@@ -0,0 +1,41 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # TRS - TRANSIT Satellite Operating Status
7
+ # TRANSIT system is not operational, no recommended replacement.
8
+ class TRS < NMEAPlus::Message::NMEA::NMEAMessage
9
+
10
+ # TRANSIT system operating status
11
+ # @!parse attr_reader :status
12
+ # @return [Symbol]
13
+ def status
14
+ case @fields[1]
15
+ when 'A' then :acquiring
16
+ when 'c' then :calculating
17
+ when 'e' then :error
18
+ when 'm' then :message
19
+ when 'T' then :test
20
+ when 'U' then :dead_reckoning
21
+ end
22
+ end
23
+
24
+ # Description of status
25
+ # @!parse attr_reader :status_description
26
+ # @return [String]
27
+ def status_description
28
+ case status
29
+ when :acquiring then 'Acquiring'
30
+ when :calculating then 'Calculating'
31
+ when :error then 'Error'
32
+ when :message then 'Message'
33
+ when :test then 'Test'
34
+ when :dead_reckoning then 'Dead reckoning'
35
+ end
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,23 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # VCD - Current at Selected Depth
7
+ # Limited utility, no recommended replacement
8
+ class VCD < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Depth, feet
10
+ field_reader :depth_feet, 1, :_float
11
+
12
+ # Depth, meters
13
+ field_reader :depth_meters, 3, :_float
14
+
15
+ # Current, knots
16
+ field_reader :water_current_speed_knots, 5, :_float
17
+
18
+ # Current, meters/second
19
+ field_reader :water_current_speed_ms, 7, :_float
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # VPE - Speed, Dead Reckoned Parallel to True Wind
7
+ # Limited utility, no recommended replacement.
8
+ class VPE < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Speed, knots, "-" = downwind
10
+ field_reader :speed_knots, 1, :_float
11
+
12
+ # Speed, meters/second, "-" = downwind
13
+ field_reader :speed_ms, 3, :_float
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,23 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # VTA - Actual Track
7
+ # Limited utility, possible use of $--VTG for a portion of the data.
8
+ class VTA < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Track made good, degrees True
10
+ field_reader :track_degrees_true, 1, :_float
11
+
12
+ # Track made good, degrees Magnetic
13
+ field_reader :track_degrees_magnetic, 3, :_float
14
+
15
+ # Speed made good, knots
16
+ field_reader :speed_made_good_knots, 5, :_float
17
+
18
+ # Distance made good, naut. miles
19
+ field_reader :distance_made_good_nautical_miles, 7, :_float
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # VTI - Intended Track
7
+ # Limited utility, no recommended replacement.
8
+ class VTI < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Intended track, degrees True
10
+ field_reader :intended_track_degrees_true, 1, :_float
11
+
12
+ # Intended track, degrees Magnetic
13
+ field_reader :intended_track_degrees_magnetic, 3, :_float
14
+
15
+ # Speed made good, knots
16
+ field_reader :speed_made_good_knots, 5, :_float
17
+
18
+ # Distance made good, naut. miles
19
+ field_reader :distance_made_good_nautical_miles, 7, :_float
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,14 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # VWE - Wind Track Efficiency
7
+ # Limited utility, no recommended replacement.
8
+ class VWE < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Efficiency, percent
10
+ field_reader :efficiency_percent, 1, :_float
11
+ end
12
+ end
13
+ end
14
+ end
@@ -4,11 +4,24 @@ module NMEAPlus
4
4
  module Message
5
5
  module NMEA
6
6
  # VWR - Relative Wind Speed and Angle
7
+ # Wind angle in relation to the vessel's heading and wind speed measured relative to the moving vessel.
8
+ #
9
+ # The use of $--MWV is recommended
10
+ # @see MWV
7
11
  class VWR < NMEAPlus::Message::NMEA::NMEAMessage
8
- field_reader :wind_direction_degrees, 1, :_float
9
- field_reader :wind_direction_bow, 2, :_string
12
+ # Measured wind angle relative to the vessel, 0 to 180, left/right L/R of vessel heading
13
+ field_reader :measured_wind_direction_degrees, 1, :_float
14
+
15
+ # Left/right L/R of vessel heading
16
+ field_reader :measured_wind_direction_bow, 2, :_string
17
+
18
+ # Measured wind Speed, knots
10
19
  field_reader :speed_knots, 3, :_float
20
+
21
+ # Wind speed, meters/second
11
22
  field_reader :speed_ms, 5, :_float
23
+
24
+ # Wind speed, Km/Hr
12
25
  field_reader :speed_kmh, 7, :_float
13
26
  end
14
27
  end
@@ -0,0 +1,35 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # VWT - True Wind Speed and Angle
7
+ #
8
+ # True wind angle in relation to the vessel's heading and true wind speed
9
+ # referenced to the water. True wind is the vector sum of the Relative
10
+ # (Apparent) wind vector and the vessel's velocity vector relative to the
11
+ # water along the heading line of the vessel. It represents the wind at
12
+ # the vessel if it were stationary relative to the water and heading in
13
+ # the same direction.
14
+ #
15
+ # The use of $--MWV is recommended
16
+ # @see MWV
17
+ class VWT < NMEAPlus::Message::NMEA::NMEAMessage
18
+ # Calculated wind angle relative to the vessel, 0 to 180, left/right L/R of vessel heading
19
+ field_reader :calculated_wind_direction_degrees, 1, :_float
20
+
21
+ # left/right L/R of vessel heading
22
+ field_reader :calculated_wind_direction_bow, 2, :_string
23
+
24
+ # Calculated wind Speed, knots
25
+ field_reader :speed_knots, 3, :_float
26
+
27
+ # Wind speed, meters/second
28
+ field_reader :speed_ms, 5, :_float
29
+
30
+ # Wind speed, Km/Hr
31
+ field_reader :speed_kmh, 7, :_float
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # WDC - Distance to Waypoint
7
+ #
8
+ # Distance from present position to the specified waypoint.
9
+ # The use of $--BWC is recommended.
10
+ # @see BWC
11
+ class WDC < NMEAPlus::Message::NMEA::NMEAMessage
12
+ # Distance, nautical miles
13
+ field_reader :distance_nautical_miles, 1, :_float
14
+
15
+ # Waypoint identifier
16
+ field_reader :waypoint_id, 3, :_string
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ require_relative "wdc"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # WDR - Waypoint Distance, Rhumb Line
7
+ # The use of $--WDC using great circle calculations is recommended.
8
+ # @see WDC
9
+ class WDR < NMEAPlus::Message::NMEA::WDC; end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # WFM - Route Following Mode
7
+ class WFM < NMEAPlus::Message::NMEA::NMEAMessage
8
+ field_reader :automatic_route_following, 1, :_av_boolean
9
+ end
10
+ end
11
+ end
12
+ end
@@ -5,9 +5,16 @@ module NMEAPlus
5
5
  module NMEA
6
6
  # WNC - Distance - Waypoint to Waypoint
7
7
  class WNC < NMEAPlus::Message::NMEA::NMEAMessage
8
+ # Distance, nautical miles
8
9
  field_reader :distance_nautical_miles, 1, :_float
10
+
11
+ # Distance, kilometers
9
12
  field_reader :distance_kilometers, 3, :_float
13
+
14
+ # TO waypoint ID
10
15
  field_reader :waypoint_to, 5, :_string
16
+
17
+ # FROM waypoint ID
11
18
  field_reader :waypoint_from, 6, :_string
12
19
  end
13
20
  end
@@ -0,0 +1,12 @@
1
+ require_relative "wnc"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # WNR - Waypoint-to-Waypoint Distance, Rhumb Line
7
+ # The use of $--WNC using great circle calculations is recommended.
8
+ # @see WNC
9
+ class WNR < NMEAPlus::Message::NMEA::WNC; end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # YWP - Water Propagation Speed
7
+ # Limited utility, no recommended replacement
8
+ class YWP < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Speed, feet/second
10
+ field_reader :speed_feet_second, 1, :_float
11
+
12
+ # Speed, meters/second
13
+ field_reader :speed_ms, 3, :_float
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,26 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # YWS - Water Profile
7
+ # Limited utility, no recommended replacement
8
+ class YWS < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Salinity, parts/thousand
10
+ field_reader :salinity_ppt, 1, :_float
11
+
12
+ # Chlorinity, parts/thousand
13
+ field_reader :chlorinity_ppt, 2, :_float
14
+
15
+ # Temperature at depth, degrees C
16
+ field_reader :temperature_celsius, 3, :_float
17
+
18
+ # Depth, feet
19
+ field_reader :depth_feet, 5, :_float
20
+
21
+ # Depth, meters
22
+ field_reader :depth_meters, 7, :_float
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,14 @@
1
+ require_relative "zzu"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # ZAA - Time, Elapsed/Estimated
7
+ # Base class for a series of deprecated $--Z-- messages
8
+ class ZAA < NMEAPlus::Message::NMEA::ZZU
9
+ # Waypoint ID
10
+ field_reader :waypoint_id, 3, :_string
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ require_relative "base_nmea"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # ZCD - Timer
7
+ # Limited utility, no recommended replacement.
8
+ class ZCD < NMEAPlus::Message::NMEA::NMEAMessage
9
+ # Timer initial value, seconds
10
+ field_reader :initial_time_seconds, 1, :_integer
11
+
12
+ # Timer control
13
+ # @!parse attr_reader :control
14
+ # @return [Symbol]
15
+ def control
16
+ case @fields[2]
17
+ when '+' then :up
18
+ when '-' then :down
19
+ when 'V' then :stop
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ require_relative "zzu"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # ZEV - Event Timer
7
+ # Limited utility, no recommended replacement.
8
+ class ZEV < NMEAPlus::Message::NMEA::ZZU
9
+ # Timer initial value
10
+ field_reader :initial_time, 2, :_interval_hms
11
+
12
+ # Timer control
13
+ # @!parse attr_reader :control
14
+ # @return [Symbol]
15
+ def control
16
+ case @fields[3]
17
+ when '+' then :up
18
+ when '-' then :down
19
+ when 'V' then :stop
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ require_relative "zaa"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # ZFI - Elapsed time from point-of-interest
7
+ # The use of $--ZFO is recommended.
8
+ # @see ZFO
9
+ class ZFI < NMEAPlus::Message::NMEA::ZAA
10
+ # Elapsed time from waypoint
11
+ field_reader :elapsed_time, 2, :_interval_hms
12
+ end
13
+ end
14
+ end
15
+ end
@@ -6,7 +6,7 @@ module NMEAPlus
6
6
  # ZFO - UTC & Time from origin Waypoint
7
7
  class ZFO < NMEAPlus::Message::NMEA::NMEAMessage
8
8
  field_reader :utc_time, 1, :_utctime_hms
9
- # field_reader :elapsed_time, 2, :_interval_hms
9
+ field_reader :elapsed_time, 2, :_interval_hms
10
10
  field_reader :origin_waypoint_id, 3, :_string
11
11
  end
12
12
  end
@@ -0,0 +1,19 @@
1
+ require_relative "zzu"
2
+
3
+ module NMEAPlus
4
+ module Message
5
+ module NMEA
6
+ # ZLZ - Time of Day
7
+ # Time of day in hours-minutes-seconds, both with respect to (UTC) and the local time zone.
8
+ # The use of $--ZDA is recommended
9
+ # @see ZDA
10
+ class ZLZ < NMEAPlus::Message::NMEA::ZZU
11
+ # Local time
12
+ field_reader :local_time, 2, :_utctime_hms
13
+
14
+ # Local zone description, 00 to 12
15
+ field_reader :zone_description, 3, :_integer
16
+ end
17
+ end
18
+ end
19
+ end