nmea_plus 1.0.24 → 1.1.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 (209) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +2 -2
  3. data/lib/nmea_plus/ais_message_factory.rb +3 -4
  4. data/lib/nmea_plus/generated_parser/parser.rb +7 -5
  5. data/lib/nmea_plus/generated_parser/tokenizer.rb +76 -75
  6. data/lib/nmea_plus/message/ais/base_ais.rb +1 -2
  7. data/lib/nmea_plus/message/ais/vdm.rb +30 -27
  8. data/lib/nmea_plus/message/ais/vdm_payload/mmsi_info.rb +9 -3
  9. data/lib/nmea_plus/message/ais/vdm_payload/payload.rb +8 -2
  10. data/lib/nmea_plus/message/ais/vdm_payload/sub_area.rb +2 -3
  11. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg.rb +3 -2
  12. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg1.rb +1 -1
  13. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg10.rb +1 -1
  14. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg11.rb +1 -1
  15. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg12.rb +1 -1
  16. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg13.rb +1 -1
  17. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg14.rb +1 -1
  18. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg15.rb +1 -1
  19. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg16.rb +1 -1
  20. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg17.rb +1 -1
  21. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg18.rb +1 -1
  22. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg19.rb +1 -1
  23. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg2.rb +1 -1
  24. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg20.rb +1 -1
  25. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg21.rb +3 -3
  26. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg24.rb +1 -1
  27. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg27.rb +1 -1
  28. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg3.rb +1 -1
  29. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg4.rb +1 -1
  30. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg5.rb +1 -1
  31. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6.rb +8 -8
  32. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload.rb +1 -1
  33. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6d1022f61.rb +7 -2
  34. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6d1f0.rb +1 -1
  35. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6d1f2.rb +1 -1
  36. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6d1f3.rb +1 -1
  37. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6d1f4.rb +1 -1
  38. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6d1f5.rb +1 -1
  39. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg6d235f10.rb +1 -1
  40. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg7.rb +1 -1
  41. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8.rb +6 -6
  42. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload.rb +1 -1
  43. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8d1f0.rb +1 -1
  44. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8d1f22.rb +5 -2
  45. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8d1f31.rb +7 -3
  46. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8d200f10.rb +2 -1
  47. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg8d366f56.rb +1 -1
  48. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg9.rb +3 -3
  49. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg_binary_acknowledgement.rb +1 -1
  50. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg_class_b_cs_position.rb +3 -3
  51. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg_cnb.rb +5 -4
  52. data/lib/nmea_plus/message/ais/vdm_payload/vdm_msg_station_report.rb +4 -4
  53. data/lib/nmea_plus/message/ais/vdo.rb +1 -1
  54. data/lib/nmea_plus/message/base.rb +14 -6
  55. data/lib/nmea_plus/message/nmea/aam.rb +1 -2
  56. data/lib/nmea_plus/message/nmea/alm.rb +1 -1
  57. data/lib/nmea_plus/message/nmea/apa.rb +1 -1
  58. data/lib/nmea_plus/message/nmea/apb.rb +1 -1
  59. data/lib/nmea_plus/message/nmea/base_nmea.rb +5 -6
  60. data/lib/nmea_plus/message/nmea/bec.rb +1 -1
  61. data/lib/nmea_plus/message/nmea/ber.rb +1 -1
  62. data/lib/nmea_plus/message/nmea/bod.rb +1 -1
  63. data/lib/nmea_plus/message/nmea/bpi.rb +1 -1
  64. data/lib/nmea_plus/message/nmea/bwc.rb +2 -2
  65. data/lib/nmea_plus/message/nmea/bwr.rb +1 -1
  66. data/lib/nmea_plus/message/nmea/bww.rb +2 -2
  67. data/lib/nmea_plus/message/nmea/dbk.rb +1 -1
  68. data/lib/nmea_plus/message/nmea/dbs.rb +2 -2
  69. data/lib/nmea_plus/message/nmea/dbt.rb +2 -2
  70. data/lib/nmea_plus/message/nmea/dcn.rb +1 -1
  71. data/lib/nmea_plus/message/nmea/dpt.rb +1 -1
  72. data/lib/nmea_plus/message/nmea/dru.rb +1 -1
  73. data/lib/nmea_plus/message/nmea/dtm.rb +1 -1
  74. data/lib/nmea_plus/message/nmea/fsi.rb +1 -1
  75. data/lib/nmea_plus/message/nmea/gbs.rb +1 -1
  76. data/lib/nmea_plus/message/nmea/gda.rb +1 -1
  77. data/lib/nmea_plus/message/nmea/gdf.rb +1 -1
  78. data/lib/nmea_plus/message/nmea/gdp.rb +1 -1
  79. data/lib/nmea_plus/message/nmea/gga.rb +1 -2
  80. data/lib/nmea_plus/message/nmea/gla.rb +1 -1
  81. data/lib/nmea_plus/message/nmea/glc.rb +1 -1
  82. data/lib/nmea_plus/message/nmea/glf.rb +1 -1
  83. data/lib/nmea_plus/message/nmea/gll.rb +1 -1
  84. data/lib/nmea_plus/message/nmea/glp.rb +1 -1
  85. data/lib/nmea_plus/message/nmea/gns.rb +1 -2
  86. data/lib/nmea_plus/message/nmea/goa.rb +1 -1
  87. data/lib/nmea_plus/message/nmea/gof.rb +1 -1
  88. data/lib/nmea_plus/message/nmea/gop.rb +1 -1
  89. data/lib/nmea_plus/message/nmea/grs.rb +4 -1
  90. data/lib/nmea_plus/message/nmea/gsa.rb +1 -1
  91. data/lib/nmea_plus/message/nmea/gst.rb +1 -1
  92. data/lib/nmea_plus/message/nmea/gsv.rb +1 -1
  93. data/lib/nmea_plus/message/nmea/gtd.rb +1 -1
  94. data/lib/nmea_plus/message/nmea/gxa.rb +1 -1
  95. data/lib/nmea_plus/message/nmea/gxf.rb +1 -1
  96. data/lib/nmea_plus/message/nmea/gxp.rb +1 -1
  97. data/lib/nmea_plus/message/nmea/hcc.rb +1 -1
  98. data/lib/nmea_plus/message/nmea/hcd.rb +1 -1
  99. data/lib/nmea_plus/message/nmea/hdg.rb +1 -1
  100. data/lib/nmea_plus/message/nmea/hdm.rb +1 -1
  101. data/lib/nmea_plus/message/nmea/hdt.rb +1 -1
  102. data/lib/nmea_plus/message/nmea/hfb.rb +1 -1
  103. data/lib/nmea_plus/message/nmea/hsc.rb +1 -1
  104. data/lib/nmea_plus/message/nmea/htc.rb +1 -1
  105. data/lib/nmea_plus/message/nmea/hvd.rb +1 -1
  106. data/lib/nmea_plus/message/nmea/hvm.rb +1 -1
  107. data/lib/nmea_plus/message/nmea/ima.rb +1 -1
  108. data/lib/nmea_plus/message/nmea/its.rb +1 -1
  109. data/lib/nmea_plus/message/nmea/lcd.rb +1 -1
  110. data/lib/nmea_plus/message/nmea/mda.rb +1 -1
  111. data/lib/nmea_plus/message/nmea/mhu.rb +1 -1
  112. data/lib/nmea_plus/message/nmea/mmb.rb +1 -1
  113. data/lib/nmea_plus/message/nmea/msk.rb +1 -1
  114. data/lib/nmea_plus/message/nmea/mss.rb +1 -1
  115. data/lib/nmea_plus/message/nmea/mta.rb +1 -1
  116. data/lib/nmea_plus/message/nmea/mtw.rb +1 -1
  117. data/lib/nmea_plus/message/nmea/mwh.rb +1 -1
  118. data/lib/nmea_plus/message/nmea/mws.rb +1 -1
  119. data/lib/nmea_plus/message/nmea/mwv.rb +1 -1
  120. data/lib/nmea_plus/message/nmea/oln.rb +1 -1
  121. data/lib/nmea_plus/message/nmea/olw.rb +1 -1
  122. data/lib/nmea_plus/message/nmea/omp.rb +1 -1
  123. data/lib/nmea_plus/message/nmea/onz.rb +1 -1
  124. data/lib/nmea_plus/message/nmea/osd.rb +1 -1
  125. data/lib/nmea_plus/message/nmea/proprietary/pashr.rb +1 -1
  126. data/lib/nmea_plus/message/nmea/r00.rb +1 -1
  127. data/lib/nmea_plus/message/nmea/rma.rb +1 -1
  128. data/lib/nmea_plus/message/nmea/rmb.rb +1 -1
  129. data/lib/nmea_plus/message/nmea/rmc.rb +1 -1
  130. data/lib/nmea_plus/message/nmea/rnn.rb +1 -1
  131. data/lib/nmea_plus/message/nmea/rot.rb +1 -1
  132. data/lib/nmea_plus/message/nmea/rpm.rb +1 -1
  133. data/lib/nmea_plus/message/nmea/rsa.rb +1 -1
  134. data/lib/nmea_plus/message/nmea/rsd.rb +1 -1
  135. data/lib/nmea_plus/message/nmea/rte.rb +1 -1
  136. data/lib/nmea_plus/message/nmea/sbk.rb +1 -1
  137. data/lib/nmea_plus/message/nmea/scd.rb +2 -2
  138. data/lib/nmea_plus/message/nmea/scy.rb +1 -1
  139. data/lib/nmea_plus/message/nmea/sdb.rb +1 -1
  140. data/lib/nmea_plus/message/nmea/sfi.rb +1 -1
  141. data/lib/nmea_plus/message/nmea/sgd.rb +1 -1
  142. data/lib/nmea_plus/message/nmea/sgr.rb +2 -1
  143. data/lib/nmea_plus/message/nmea/siu.rb +1 -1
  144. data/lib/nmea_plus/message/nmea/slc.rb +2 -2
  145. data/lib/nmea_plus/message/nmea/snc.rb +3 -3
  146. data/lib/nmea_plus/message/nmea/snu.rb +1 -1
  147. data/lib/nmea_plus/message/nmea/sps.rb +1 -1
  148. data/lib/nmea_plus/message/nmea/ssf.rb +1 -1
  149. data/lib/nmea_plus/message/nmea/stc.rb +1 -1
  150. data/lib/nmea_plus/message/nmea/stn.rb +1 -1
  151. data/lib/nmea_plus/message/nmea/str.rb +1 -1
  152. data/lib/nmea_plus/message/nmea/sys.rb +6 -6
  153. data/lib/nmea_plus/message/nmea/tds.rb +1 -1
  154. data/lib/nmea_plus/message/nmea/tec.rb +1 -1
  155. data/lib/nmea_plus/message/nmea/tep.rb +1 -1
  156. data/lib/nmea_plus/message/nmea/tfi.rb +1 -1
  157. data/lib/nmea_plus/message/nmea/tga.rb +1 -1
  158. data/lib/nmea_plus/message/nmea/tif.rb +14 -11
  159. data/lib/nmea_plus/message/nmea/tpc.rb +1 -1
  160. data/lib/nmea_plus/message/nmea/tpr.rb +1 -1
  161. data/lib/nmea_plus/message/nmea/tpt.rb +1 -1
  162. data/lib/nmea_plus/message/nmea/trf.rb +1 -1
  163. data/lib/nmea_plus/message/nmea/trp.rb +1 -1
  164. data/lib/nmea_plus/message/nmea/trs.rb +20 -17
  165. data/lib/nmea_plus/message/nmea/ttm.rb +1 -1
  166. data/lib/nmea_plus/message/nmea/vbw.rb +1 -1
  167. data/lib/nmea_plus/message/nmea/vcd.rb +1 -1
  168. data/lib/nmea_plus/message/nmea/vdr.rb +1 -1
  169. data/lib/nmea_plus/message/nmea/vhw.rb +1 -1
  170. data/lib/nmea_plus/message/nmea/vlw.rb +1 -1
  171. data/lib/nmea_plus/message/nmea/vpe.rb +1 -1
  172. data/lib/nmea_plus/message/nmea/vpw.rb +1 -1
  173. data/lib/nmea_plus/message/nmea/vta.rb +1 -1
  174. data/lib/nmea_plus/message/nmea/vtg.rb +6 -2
  175. data/lib/nmea_plus/message/nmea/vti.rb +1 -1
  176. data/lib/nmea_plus/message/nmea/vwe.rb +1 -1
  177. data/lib/nmea_plus/message/nmea/vwr.rb +1 -1
  178. data/lib/nmea_plus/message/nmea/vwt.rb +1 -1
  179. data/lib/nmea_plus/message/nmea/wcv.rb +1 -1
  180. data/lib/nmea_plus/message/nmea/wdc.rb +1 -1
  181. data/lib/nmea_plus/message/nmea/wdr.rb +1 -1
  182. data/lib/nmea_plus/message/nmea/wfm.rb +1 -1
  183. data/lib/nmea_plus/message/nmea/wnc.rb +1 -1
  184. data/lib/nmea_plus/message/nmea/wnr.rb +1 -1
  185. data/lib/nmea_plus/message/nmea/wpl.rb +1 -1
  186. data/lib/nmea_plus/message/nmea/xdr.rb +1 -1
  187. data/lib/nmea_plus/message/nmea/xte.rb +1 -1
  188. data/lib/nmea_plus/message/nmea/xtr.rb +1 -1
  189. data/lib/nmea_plus/message/nmea/ywp.rb +1 -1
  190. data/lib/nmea_plus/message/nmea/yws.rb +1 -1
  191. data/lib/nmea_plus/message/nmea/zaa.rb +1 -1
  192. data/lib/nmea_plus/message/nmea/zcd.rb +8 -6
  193. data/lib/nmea_plus/message/nmea/zda.rb +5 -3
  194. data/lib/nmea_plus/message/nmea/zev.rb +8 -6
  195. data/lib/nmea_plus/message/nmea/zfi.rb +1 -1
  196. data/lib/nmea_plus/message/nmea/zfo.rb +1 -1
  197. data/lib/nmea_plus/message/nmea/zlz.rb +1 -1
  198. data/lib/nmea_plus/message/nmea/zpi.rb +1 -1
  199. data/lib/nmea_plus/message/nmea/zta.rb +1 -1
  200. data/lib/nmea_plus/message/nmea/zte.rb +1 -1
  201. data/lib/nmea_plus/message/nmea/ztg.rb +1 -1
  202. data/lib/nmea_plus/message/nmea/zti.rb +1 -1
  203. data/lib/nmea_plus/message/nmea/zwp.rb +1 -1
  204. data/lib/nmea_plus/message/nmea/zzu.rb +1 -1
  205. data/lib/nmea_plus/message_factory.rb +4 -4
  206. data/lib/nmea_plus/nmea_message_factory.rb +152 -153
  207. data/lib/nmea_plus/version.rb +1 -1
  208. data/lib/nmea_plus.rb +6 -4
  209. metadata +13 -167
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,11 +1,11 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
2
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6d1f0'
3
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6d1f2'
4
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6d1f3'
5
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6d1f4'
6
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6d1f5'
7
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6d235f10'
8
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6d1022f61'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6d1f0"
3
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6d1f2"
4
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6d1f3"
5
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6d1f4"
6
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6d1f5"
7
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6d235f10"
8
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6d1022f61"
9
9
 
10
10
  module NMEAPlus
11
11
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/payload'
1
+ require "nmea_plus/message/ais/vdm_payload/payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -29,6 +29,7 @@ module NMEAPlus
29
29
  # @return [bool]
30
30
  def _field0_bit(position)
31
31
  return nil if @fields[1].nil?
32
+
32
33
  mask = 1 << (7 - position)
33
34
  @fields[0].hex & mask == mask
34
35
  end
@@ -59,6 +60,7 @@ module NMEAPlus
59
60
  # @return [Integer]
60
61
  def operation_mode
61
62
  return nil if @fields[1].nil?
63
+
62
64
  @fields[1].hex >> 6
63
65
  end
64
66
 
@@ -81,7 +83,8 @@ module NMEAPlus
81
83
  # @return [Float]
82
84
  def intensity_percent
83
85
  return nil if @fields[1].nil?
84
- (1 + (@fields[1].hex & "3F".hex)) * (100.0 / 2**6)
86
+
87
+ (1 + (@fields[1].hex & "3F".hex)) * (100.0 / (2**6))
85
88
  end
86
89
 
87
90
  # A vendor-specific code
@@ -104,6 +107,7 @@ module NMEAPlus
104
107
  def latitude
105
108
  parts = @fields[4]
106
109
  return nil if parts.nil?
110
+
107
111
  NMEAPlus::Message::Base.degrees_minutes_to_decimal(parts[0..-1], parts[-1])
108
112
  end
109
113
 
@@ -113,6 +117,7 @@ module NMEAPlus
113
117
  def longitude
114
118
  parts = @fields[5]
115
119
  return nil if parts.nil?
120
+
116
121
  NMEAPlus::Message::Base.degrees_minutes_to_decimal(parts[0..-1], parts[-1])
117
122
  end
118
123
 
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg6_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg_binary_acknowledgement'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg_binary_acknowledgement"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,9 +1,9 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
2
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8d1f0'
3
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8d1f22'
4
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8d1f31'
5
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8d200f10'
6
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8d366f56'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8d1f0"
3
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8d1f22"
4
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8d1f31"
5
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8d200f10"
6
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8d366f56"
7
7
 
8
8
  module NMEAPlus
9
9
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/payload'
1
+ require "nmea_plus/message/ais/vdm_payload/payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,5 +1,5 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload'
2
- require 'nmea_plus/message/ais/vdm_payload/sub_area'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload"
2
+ require "nmea_plus/message/ais/vdm_payload/sub_area"
3
3
 
4
4
  module NMEAPlus
5
5
  module Message
@@ -43,6 +43,7 @@ module NMEAPlus
43
43
  # @!parse attr_reader :notice_description
44
44
  # @return [String] Area notice description
45
45
  def notice_description
46
+ # rubocop:disable Lint/DuplicateBranch
46
47
  case notice_id
47
48
  when 0 then "Caution Area: Marine mammals habitat"
48
49
  when 1 then "Caution Area: Marine mammals in area - reduce speed"
@@ -173,6 +174,7 @@ module NMEAPlus
173
174
  when 126 then "Cancellation - cancel area as identified by Message Linkage ID"
174
175
  when 127 then "Undefined (default)"
175
176
  end
177
+ # rubocop:enable Lint/DuplicateBranch
176
178
  end
177
179
 
178
180
  # @!parse attr_reader :utc_time
@@ -196,6 +198,7 @@ module NMEAPlus
196
198
  def sub_area_text
197
199
  texts = sub_areas.select { |a| a.shape_id == 5 }
198
200
  return nil if texts.empty?
201
+
199
202
  texts.collect(&:text).join
200
203
  end
201
204
 
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -7,8 +7,8 @@ module NMEAPlus
7
7
  # Type 8: Binary Broadcast Message Subtype: Meteorological and Hydrological Data (IMO289)
8
8
  class VDMMsg8d1f31 < NMEAPlus::Message::AIS::VDMPayload::VDMMsg8DynamicPayload
9
9
 
10
- payload_reader :longitude, 56, 25, :_I, 60 * 10**3, 181
11
- payload_reader :latitude, 81, 24, :_I, 60 * 10**3, 91
10
+ payload_reader :longitude, 56, 25, :_I, 60 * (10**3), 181
11
+ payload_reader :latitude, 81, 24, :_I, 60 * (10**3), 91
12
12
  payload_reader :position_10m_accuracy?, 105, 1, :_b
13
13
 
14
14
  # @!parse attr_reader :current_time
@@ -80,6 +80,7 @@ module NMEAPlus
80
80
  # @param [Integer] code The code for precipitation
81
81
  # @return [String] the description
82
82
  def precipitation_description
83
+ # rubocop:disable Lint/DuplicateBranch
83
84
  case precipitation_type
84
85
  when 0 then return "Reserved"
85
86
  when 1 then return "Rain"
@@ -90,6 +91,7 @@ module NMEAPlus
90
91
  when 6 then return "Reserved"
91
92
  # 7 is nil
92
93
  end
94
+ # rubocop:enable Lint/DuplicateBranch
93
95
  nil
94
96
  end
95
97
 
@@ -98,6 +100,8 @@ module NMEAPlus
98
100
  def salinity
99
101
  ret = _U(339, 9, 10)
100
102
  return nil if ret > 51.0 # 51.1 for sensor not available, otherwise n/a
103
+
104
+ ret
101
105
  end
102
106
 
103
107
  # @!parse attr_reader :salinity_sensor_unavailable?
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -55,6 +55,7 @@ module NMEAPlus
55
55
  def get_eri_solas_description(code)
56
56
  return nil if code < 1
57
57
  return nil if 99 < code
58
+
58
59
  i = code.to_i
59
60
  major = case i / 10
60
61
  when 3 then "Vessel"
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg8_dynamic_payload"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -11,8 +11,8 @@ module NMEAPlus
11
11
 
12
12
  payload_reader :speed_over_ground, 50, 10, :_U, 1, 1023
13
13
  payload_reader :position_10m_accuracy?, 60, 1, :_b
14
- payload_reader :longitude, 61, 28, :_I, 60 * 10**4, 181
15
- payload_reader :latitude, 89, 27, :_I, 60 * 10**4, 91
14
+ payload_reader :longitude, 61, 28, :_I, 60 * (10**4), 181
15
+ payload_reader :latitude, 89, 27, :_I, 60 * (10**4), 91
16
16
  payload_reader :course_over_ground, 116, 12, :_U, 10
17
17
  payload_reader :time_stamp, 128, 6, :_u
18
18
  payload_reader :dte_ready?, 142, 1, :_nb
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -11,8 +11,8 @@ module NMEAPlus
11
11
  class VDMMsgClassBCSPosition < NMEAPlus::Message::AIS::VDMPayload::VDMMsg
12
12
  payload_reader :speed_over_ground, 46, 10, :_U, 10
13
13
  payload_reader :position_10m_accuracy?, 56, 1, :_b
14
- payload_reader :longitude, 57, 28, :_I, 60 * 10**4, 181
15
- payload_reader :latitude, 85, 27, :_I, 60 * 10**4, 91
14
+ payload_reader :longitude, 57, 28, :_I, 60 * (10**4), 181
15
+ payload_reader :latitude, 85, 27, :_I, 60 * (10**4), 91
16
16
  payload_reader :course_over_ground, 112, 12, :_U, 10
17
17
  payload_reader :true_heading, 124, 9, :_u, 511
18
18
  payload_reader :time_stamp, 133, 6, :_u
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -21,14 +21,15 @@ module NMEAPlus
21
21
  def rate_of_turn
22
22
  ret = _i(42, 8) # spec is wrong, we don't use I3
23
23
  return nil if ret == -128
24
+
24
25
  negative = ret < 0
25
- (ret / 4.733)**2 * (negative ? -1 : 1)
26
+ ((ret / 4.733)**2) * (negative ? -1 : 1)
26
27
  end
27
28
 
28
29
  payload_reader :speed_over_ground, 50, 10, :_U, 10
29
30
  payload_reader :position_10m_accuracy?, 60, 1, :_b
30
- payload_reader :longitude, 61, 28, :_I, 60 * 10**4, 181
31
- payload_reader :latitude, 89, 27, :_I, 60 * 10**4, 91
31
+ payload_reader :longitude, 61, 28, :_I, 60 * (10**4), 181
32
+ payload_reader :latitude, 89, 27, :_I, 60 * (10**4), 91
32
33
  payload_reader :course_over_ground, 116, 12, :_U, 10, 3600
33
34
  payload_reader :true_heading, 128, 9, :_u, 511
34
35
 
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm_payload/vdm_msg'
1
+ require "nmea_plus/message/ais/vdm_payload/vdm_msg"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -19,12 +19,12 @@ module NMEAPlus
19
19
  _u(61, 5),
20
20
  _u(66, 6),
21
21
  _u(72, 6),
22
- '+00:00')
22
+ "+00:00")
23
23
  end
24
24
 
25
25
  payload_reader :position_10m_accuracy?, 78, 1, :_b
26
- payload_reader :longitude, 79, 28, :_I, 60 * 10**4, 181
27
- payload_reader :latitude, 107, 27, :_I, 60 * 10**4, 91
26
+ payload_reader :longitude, 79, 28, :_I, 60 * (10**4), 181
27
+ payload_reader :latitude, 107, 27, :_I, 60 * (10**4), 91
28
28
  payload_reader :epfd_type, 134, 4, :_e
29
29
  payload_reader :raim?, 148, 1, :_b
30
30
 
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/ais/vdm'
1
+ require "nmea_plus/message/ais/vdm"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,3 @@
1
-
2
1
  module NMEAPlus
3
2
 
4
3
  # This module contains all parsed NMEA message types, and their subtypes.
@@ -66,7 +65,7 @@ module NMEAPlus
66
65
  # @!parse attr_accessor :payload
67
66
  def payload=(val)
68
67
  @payload = val
69
- @fields = val.split(',', -1)
68
+ @fields = val.split(",", -1)
70
69
  end
71
70
 
72
71
  # @return [bool] Whether the checksum calculated from the payload matches the checksum given in the message
@@ -78,12 +77,13 @@ module NMEAPlus
78
77
  def all_checksums_ok?
79
78
  return false unless checksum_ok?
80
79
  return true if @next_part.nil?
80
+
81
81
  @next_part.all_checksums_ok?
82
82
  end
83
83
 
84
84
  # return [String] The calculated checksum for this payload as a two-character string
85
85
  def calculated_checksum
86
- "%02x" % @payload.each_byte.map(&:ord).reduce(:^)
86
+ format("%02x", @payload.each_byte.map(&:ord).reduce(:^))
87
87
  end
88
88
 
89
89
  # @!parse attr_reader :total_messages
@@ -134,6 +134,7 @@ module NMEAPlus
134
134
  mn = message_number # just in case this is expensive to compute
135
135
  return last_index if mn - last_index != 1 # indicating a skip or restart
136
136
  return mn if @next_part.nil? # indicating we're the last message
137
+
137
138
  @next_part._highest_contiguous_index(mn) # recurse down
138
139
  end
139
140
 
@@ -145,6 +146,7 @@ module NMEAPlus
145
146
  # @return [Float] A signed latitude or longitude
146
147
  def self.degrees_minutes_to_decimal(dm_string, sign_letter = "")
147
148
  return nil if dm_string.nil? || dm_string.empty?
149
+
148
150
  r = /(\d+)(\d{2}\.\d+)/ # (some number of digits) (2 digits for minutes).(decimal minutes)
149
151
  m = r.match(dm_string)
150
152
  raw = m.values_at(1)[0].to_f + (m.values_at(2)[0].to_f / 60)
@@ -168,6 +170,7 @@ module NMEAPlus
168
170
  # @return [Integer] The value in the field or nil
169
171
  def self._integer(field)
170
172
  return nil if field.nil? || field.empty?
173
+
171
174
  field.to_i
172
175
  end
173
176
 
@@ -177,6 +180,7 @@ module NMEAPlus
177
180
  # @return [Float] The value in the field or nil
178
181
  def self._float(field)
179
182
  return nil if field.nil? || field.empty?
183
+
180
184
  field.to_f
181
185
  end
182
186
 
@@ -186,6 +190,7 @@ module NMEAPlus
186
190
  # @return [String] The value in the field or nil
187
191
  def self._string(field)
188
192
  return nil if field.nil? || field.empty?
193
+
189
194
  field
190
195
  end
191
196
 
@@ -195,6 +200,7 @@ module NMEAPlus
195
200
  # @return [Integer] The value in the field or nil
196
201
  def self._hex_to_integer(field)
197
202
  return nil if field.nil? || field.empty?
203
+
198
204
  field.hex
199
205
  end
200
206
 
@@ -204,11 +210,12 @@ module NMEAPlus
204
210
  # @return [Time] The value in the field or nil
205
211
  def self._utctime_hms(field)
206
212
  return nil if field.nil? || field.empty?
213
+
207
214
  re_format = /(\d{2})(\d{2})(\d{2}(\.\d+)?)/
208
215
  now = Time.now
209
216
  begin
210
217
  hms = re_format.match(field)
211
- Time.new(now.year, now.month, now.day, hms[1].to_i, hms[2].to_i, hms[3].to_f, '+00:00')
218
+ Time.new(now.year, now.month, now.day, hms[1].to_i, hms[2].to_i, hms[3].to_f, "+00:00")
212
219
  rescue
213
220
  nil
214
221
  end
@@ -220,10 +227,11 @@ module NMEAPlus
220
227
  # @return [Time] The value in the field or nil
221
228
  def self._interval_hms(field)
222
229
  return nil if field.nil? || field.empty?
230
+
223
231
  re_format = /(\d{2})(\d{2})(\d{2}(\.\d+)?)/
224
232
  begin
225
233
  hms = re_format.match(field)
226
- Time.new(0, 1, 1, hms[1].to_i, hms[2].to_i, hms[3].to_f, '+00:00')
234
+ Time.new(0, 1, 1, hms[1].to_i, hms[2].to_i, hms[3].to_f, "+00:00")
227
235
  rescue
228
236
  nil
229
237
  end
@@ -245,7 +253,7 @@ module NMEAPlus
245
253
  begin
246
254
  dmy = date_format.match(d_field)
247
255
  hms = time_format.match(t_field)
248
- Time.new(2000 + dmy[3].to_i, dmy[2].to_i, dmy[1].to_i, hms[1].to_i, hms[2].to_i, hms[3].to_f, '+00:00')
256
+ Time.new(2000 + dmy[3].to_i, dmy[2].to_i, dmy[1].to_i, hms[1].to_i, hms[2].to_i, hms[3].to_f, "+00:00")
249
257
  rescue
250
258
  nil
251
259
  end
@@ -1,5 +1,4 @@
1
-
2
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
3
2
 
4
3
  module NMEAPlus
5
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,5 +1,4 @@
1
-
2
- require 'nmea_plus/message/base'
1
+ require "nmea_plus/message/base"
3
2
 
4
3
  module NMEAPlus
5
4
  module Message
@@ -33,8 +32,8 @@ module NMEAPlus
33
32
  # @return [bool] The value in the field or nil
34
33
  def self._av_boolean(field)
35
34
  case field
36
- when 'A' then return true
37
- when 'V' then return false
35
+ when "A" then return true
36
+ when "V" then return false
38
37
  end
39
38
  nil
40
39
  end
@@ -45,8 +44,8 @@ module NMEAPlus
45
44
  # @return [bool] The value in the field or nil
46
45
  def self._10_boolean(field)
47
46
  case field
48
- when '1' then return true
49
- when '0' then return false
47
+ when "1" then return true
48
+ when "0" then return false
50
49
  end
51
50
  nil
52
51
  end
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/bwr'
1
+ require "nmea_plus/message/nmea/bwr"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/bwr'
1
+ require "nmea_plus/message/nmea/bwr"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/bwr'
1
+ require "nmea_plus/message/nmea/bwr"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,5 +1,5 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
2
- require 'nmea_plus/message/nmea/bwr'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
+ require "nmea_plus/message/nmea/bwr"
3
3
 
4
4
  module NMEAPlus
5
5
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,5 +1,5 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
2
- require 'nmea_plus/message/nmea/bod'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
+ require "nmea_plus/message/nmea/bod"
3
3
 
4
4
  module NMEAPlus
5
5
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,5 +1,5 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
2
- require 'nmea_plus/message/nmea/dbk'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
+ require "nmea_plus/message/nmea/dbk"
3
3
 
4
4
  module NMEAPlus
5
5
  module Message
@@ -1,5 +1,5 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
2
- require 'nmea_plus/message/nmea/dbk'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
+ require "nmea_plus/message/nmea/dbk"
3
3
 
4
4
  module NMEAPlus
5
5
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message
@@ -1,4 +1,4 @@
1
- require 'nmea_plus/message/nmea/base_nmea'
1
+ require "nmea_plus/message/nmea/base_nmea"
2
2
 
3
3
  module NMEAPlus
4
4
  module Message