summaryrefslogtreecommitdiff
path: root/gpsdecode.c
diff options
context:
space:
mode:
authorChristian Gagneraud <chgans@gna.org>2012-05-23 00:27:04 +0100
committerChristian Gagneraud <cgagneraud@techworks.ie>2012-05-23 21:36:34 +0100
commitf2ba497b7ebe1158bb2e0088ad828c45600938ee (patch)
tree5abb21afc08b3465844c628639923840ceea9a04 /gpsdecode.c
parent6041bdbf72c9b92d50b5bad8a7e7ced9ef65678f (diff)
downloadgpsd-f2ba497b7ebe1158bb2e0088ad828c45600938ee.tar.gz
[AIS] Add UK/ROI AtoN monitoring data message handling
Diffstat (limited to 'gpsdecode.c')
-rw-r--r--gpsdecode.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/gpsdecode.c b/gpsdecode.c
index 60060b72..cc257161 100644
--- a/gpsdecode.c
+++ b/gpsdecode.c
@@ -105,15 +105,38 @@ static void aivdm_csv_dump(struct ais_t *ais, char *buf, size_t buflen)
break;
case 6: /* Binary Message */
(void)snprintf(buf + strlen(buf), buflen - strlen(buf),
- "%u|%u|%u|%u|%u|%zd:%s",
+ "%u|%u|%u|%u|%u",
ais->type6.seqno,
ais->type6.dest_mmsi,
(uint) ais->type6.retransmit,
ais->type6.dac,
- ais->type6.fid,
- ais->type6.bitcount,
- gpsd_hexdump(ais->type6.bitdata,
- (ais->type6.bitcount + 7) / 8));
+ ais->type6.fid);
+ switch(ais->type6.dac) {
+ case 235: /* UK */
+ case 250: /* Rep. Of Ireland */
+ switch(ais->type6.fid) {
+ case 10: /* GLA - AtoN monitoring */
+ (void)snprintf(buf + strlen(buf), buflen - strlen(buf),
+ "|%u|%u|%u|%u|%u|%u|%u|%u",
+ ais->type6.dac235fid10.ana_int,
+ ais->type6.dac235fid10.ana_ext1,
+ ais->type6.dac235fid10.ana_ext2,
+ ais->type6.dac235fid10.racon,
+ ais->type6.dac235fid10.light,
+ ais->type6.dac235fid10.alarm,
+ ais->type6.dac235fid10.stat_ext,
+ ais->type6.dac235fid10.off_pos);
+ imo = true;
+ break;
+ }
+ break;
+ }
+ if (!imo)
+ (void)snprintf(buf + strlen(buf), buflen - strlen(buf),
+ "|%zd:%s",
+ ais->type6.bitcount,
+ gpsd_hexdump(ais->type6.bitdata,
+ (ais->type6.bitcount + 7) / 8));
break;
case 7: /* Binary Acknowledge */
case 13: /* Safety Related Acknowledge */