nmea_plus 1.0.17 → 1.0.18
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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/nmea_plus/ais_message_factory.rb +4 -2
- data/lib/nmea_plus/message_factory.rb +6 -3
- data/lib/nmea_plus/nmea_message_factory.rb +2 -2
- data/lib/nmea_plus/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64c81ca17980fff6fb15d5aef4d45e19b49a3367
|
4
|
+
data.tar.gz: c47476023d1c6b162306587e5ee94e4f32bced7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9127ce5a96e7a6ec258628e3dc23a158f94e68f69981db4c2b0dd94b6e5bb39821b3ed97734aa9efaf4f17f76b6adf36e774896f39d65fb6ce7f1574493d6dcb
|
7
|
+
data.tar.gz: 04b0f32452147f58a0fcbf7c9fa46e6334ea659570aafb34102d4bcbd01821a7af91c4a28d7cbddeeec2c0fc8e713e6b6d5e5f60f6dea1524b59eb748554c18f
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://rubygems.org/gems/nmea_plus)
|
4
4
|
[](https://travis-ci.org/ifreecarve/nmea_plus)
|
5
|
-
[](http://www.rubydoc.info/gems/nmea_plus/1.0.
|
5
|
+
[](http://www.rubydoc.info/gems/nmea_plus/1.0.18)
|
6
6
|
|
7
7
|
[NMEA Plus](https://github.com/ifreecarve/nmea_plus) is a Ruby gem for parsing and decoding "GPS" messages: NMEA, AIS, and any other similar formats of short messaging typically used by marine equipment. It provides convenient access (by name) to the fields of each message type, and a stream reader designed for use with Ruby Blocks.
|
8
8
|
|
@@ -104,7 +104,7 @@ http://catb.org/gpsd/AIVDM.html
|
|
104
104
|
And some binary subtypes from the ITU spec found here:
|
105
105
|
https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1371-4-201004-S!!PDF-E.pdf
|
106
106
|
|
107
|
-
The AIS payload can be found in the payload field of a `VDM` message (aka `!AIVDM`, `!ABVDM`, `!SAVDM`). Currently, the following AIS message types are supported:
|
107
|
+
The AIS payload can be found in the payload field of a `VDM` message (aka `!AIVDM`, `!ABVDM`, `!SAVDM`) or `VDO` message (aka `!AIVDO`). Currently, the following AIS message types are supported:
|
108
108
|
|
109
109
|
> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 24, 27
|
110
110
|
|
@@ -16,10 +16,12 @@ module NMEAPlus
|
|
16
16
|
|
17
17
|
# Match all AIS messages as their generic counterparts. AIVDM becomes VDM, etc.
|
18
18
|
# @param data_type [String] The data_type of the AIS message (e.g. the AIVDM of "$AIVDM,12,3,,4,5*00")
|
19
|
-
# @return [
|
19
|
+
# @return [Array] Array of data_type strings that we will attempt to use in decoding the message
|
20
20
|
def self.alternate_data_type(data_type)
|
21
21
|
# match last 3 digits (get rid of talker)
|
22
|
-
data_type[2..4]
|
22
|
+
ret = [data_type[2..4]]
|
23
|
+
ret << "VDM" if data_type == "AIVDO"
|
24
|
+
ret
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -21,9 +21,9 @@ module NMEAPlus
|
|
21
21
|
# alternate type (like GPAAM) or a generic type (like AAM). This is where we put that logic.
|
22
22
|
# @abstract
|
23
23
|
# @param data_type [String] The data_type of the NMEA message (e.g. the GPGLL of "$GPGLL,12,3,,4,5*00")
|
24
|
-
# @return [
|
24
|
+
# @return [Array] Array of data_type strings that we will attempt to use in decoding the message
|
25
25
|
def self.alternate_data_type(data_type)
|
26
|
-
data_type # in basic implementation, there is no alternative.
|
26
|
+
[data_type] # in basic implementation, there is no alternative.
|
27
27
|
end
|
28
28
|
|
29
29
|
# Check whether a given object exists. this will work for all consts but shhhhhhhhh
|
@@ -49,7 +49,10 @@ module NMEAPlus
|
|
49
49
|
# @return [String] The fully qualified message class name
|
50
50
|
def self.best_match_for_data_type(data_type)
|
51
51
|
return data_type if self.message_class_exists?(self.message_class_name(data_type))
|
52
|
-
self.alternate_data_type(data_type)
|
52
|
+
self.alternate_data_type(data_type).each do |alternate_type|
|
53
|
+
return alternate_type if self.message_class_exists?(self.message_class_name(alternate_type))
|
54
|
+
end
|
55
|
+
data_type
|
53
56
|
end
|
54
57
|
|
55
58
|
# Get a message class through reflection
|
@@ -107,10 +107,10 @@ end
|
|
107
107
|
|
108
108
|
# Match all NMEA messages as their generic counterparts. GPGLL becomes GLL, etc.
|
109
109
|
# @param data_type [String] The data_type of the NMEA message (e.g. the GPGLL of "$GPGLL,12,3,,4,5*00")
|
110
|
-
# @return [
|
110
|
+
# @return [Array] Array of data_type strings that we will attempt to use in decoding the message
|
111
111
|
def self.alternate_data_type(data_type)
|
112
112
|
# match last 3 digits (get rid of talker)
|
113
|
-
data_type[2..4]
|
113
|
+
[data_type[2..4]]
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
data/lib/nmea_plus/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nmea_plus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Katz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: racc
|