summaryrefslogtreecommitdiff
path: root/packet.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2014-05-16 11:16:48 -0400
committerEric S. Raymond <esr@thyrsus.com>2014-05-16 11:21:03 -0400
commitb5c687b0425e19cf87add2264a408ca0f8270e10 (patch)
treec39806fc941a758e31d316fc787b38c3112381ad /packet.c
parent042a6e6bfa01966848550c4c5f751e57259ab88e (diff)
downloadgpsd-b5c687b0425e19cf87add2264a408ca0f8270e10.tar.gz
Support for, and documentation of, some unuusual AIS talker IDs.
Diffstat (limited to 'packet.c')
-rw-r--r--packet.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/packet.c b/packet.c
index 363b8e55..1c1ffa3b 100644
--- a/packet.c
+++ b/packet.c
@@ -90,18 +90,23 @@ PERMISSIONS
* application, they'd just add complexity.
*
* The NMEA portion of the state machine allows the following talker IDs:
- * GP -- Global Positioning System.
- * GL -- GLONASS, according to IEIC 61162-1
- * GN -- Mixed GPS and GLONASS data, according to IEIC 61162-1
- * II -- Integrated Instrumentation (Raytheon's SeaTalk system).
- * IN -- Integrated Navigation (Garmin uses this).
- * WI -- Weather instrument (Airmar PB200, Radio Ocean ROWIND, Vaisala WXT520).
- * HC -- Heading/compass (Airmar PB200).
- * TI -- Turn indicator (Airmar PB200).
- * EC -- Electronic Chart Display & Information System (ECDIS)
- * SD -- Depth Sounder
- * P -- Vendor-specific sentence
+ * $GP -- Global Positioning System.
+ * $GL -- GLONASS, according to IEIC 61162-1
+ * $GN -- Mixed GPS and GLONASS data, according to IEIC 61162-1
+ * $II -- Integrated Instrumentation (Raytheon's SeaTalk system).
+ * $IN -- Integrated Navigation (Garmin uses this).
+ * $WI -- Weather instrument (Airmar PB200, Radio Ocean ROWIND, Vaisala WXT520).
+ * $HC -- Heading/compass (Airmar PB200).
+ * $TI -- Turn indicator (Airmar PB200).
+ * $EC -- Electronic Chart Display & Information System (ECDIS)
+ * $SD -- Depth Sounder
+ * $P -- Vendor-specific sentence
*
+ * !AI -- Mobile AIS station
+ * !BS -- Base AIS station (deprecated in NMEA 4.0)
+ * !AB -- NMEA 4.0 Base AIS station
+ * !AN -- NMEA 4.0 Buoy AIS station
+ * !AX -- NMEA 4.0 Repeater AIS station
*/
enum
@@ -419,7 +424,7 @@ static void nextstate(struct gps_packet_t *lexer, unsigned char c)
lexer->state = GROUND_STATE;
break;
case AIS_LEAD_1:
- if (c == 'I')
+ if (c == 'I' || c == 'B' || c == 'N' || c == 'X')
lexer->state = AIS_LEAD_2;
else
lexer->state = GROUND_STATE;