summaryrefslogtreecommitdiff
path: root/gpsdecode.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2009-09-22 23:10:08 +0000
committerEric S. Raymond <esr@thyrsus.com>2009-09-22 23:10:08 +0000
commita450f4ae94b6c266f8062c2a9544479aecda1ac3 (patch)
treed80bdc1460c4f6cbce84d65bce991fbdc40f91f6 /gpsdecode.c
parent0b87f38c11d786a3ebeddeac536ea3e62ad31998 (diff)
downloadgpsd-a450f4ae94b6c266f8062c2a9544479aecda1ac3.tar.gz
Fully support AIS type 22 and 23 messages. All regression tests pass.
Codebase splints clean.
Diffstat (limited to 'gpsdecode.c')
-rw-r--r--gpsdecode.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gpsdecode.c b/gpsdecode.c
index eccfb045..406f651c 100644
--- a/gpsdecode.c
+++ b/gpsdecode.c
@@ -280,7 +280,7 @@ static void aivdm_csv_dump(struct ais_t *ais, char *buf, size_t buflen)
"%u,%u,%u,%u,%d,%d,%d,%d,%u,%u,%u,%u",
ais->type22.channel_a,
ais->type22.channel_b,
- ais->type22.mode,
+ ais->type22.txrx,
(uint)ais->type22.power,
ais->type22.ne_lon,
ais->type22.ne_lat,
@@ -291,6 +291,19 @@ static void aivdm_csv_dump(struct ais_t *ais, char *buf, size_t buflen)
(uint)ais->type22.band_b,
ais->type22.zonesize);
break;
+ case 23: /* Group Management Command*/
+ (void)snprintf(buf+strlen(buf), buflen-strlen(buf),
+ "%d,%d,%d,%d,%u,%u,%u,%u,%u",
+ ais->type23.ne_lon,
+ ais->type23.ne_lat,
+ ais->type23.sw_lon,
+ ais->type23.sw_lat,
+ ais->type23.stationtype,
+ ais->type23.shiptype,
+ ais->type23.txrx,
+ ais->type23.interval,
+ ais->type23.quiet);
+ break;
case 24: /* Class B CS Static Data Report */
(void)snprintf(buf+strlen(buf), buflen-strlen(buf),
"%s,",