diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2014-05-16 11:16:48 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2014-05-16 11:21:03 -0400 |
commit | b5c687b0425e19cf87add2264a408ca0f8270e10 (patch) | |
tree | c39806fc941a758e31d316fc787b38c3112381ad /packet.c | |
parent | 042a6e6bfa01966848550c4c5f751e57259ab88e (diff) | |
download | gpsd-b5c687b0425e19cf87add2264a408ca0f8270e10.tar.gz |
Support for, and documentation of, some unuusual AIS talker IDs.
Diffstat (limited to 'packet.c')
-rw-r--r-- | packet.c | 29 |
1 files changed, 17 insertions, 12 deletions
@@ -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; |