summaryrefslogtreecommitdiff
path: root/driver_aivdm.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2011-04-25 16:30:32 -0400
committerEric S. Raymond <esr@thyrsus.com>2011-04-25 16:30:32 -0400
commitcee7beef1583b8bbd9b7b6bbcd3b8e604fad224c (patch)
treeca6361bf93ce2d84765bc739c84d7d866b94877e /driver_aivdm.c
parent78ed39bd60d8356c49a9669495e5f3af35196bb8 (diff)
downloadgpsd-cee7beef1583b8bbd9b7b6bbcd3b8e604fad224c.tar.gz
In AIS, add partial support for IMO 236 FID 25 (untested).
Daemon support fort analyzing and reporting. Client-library support is not done, it needs machinery to handle the array of repeated elements at the end. All regression tests pass.
Diffstat (limited to 'driver_aivdm.c')
-rw-r--r--driver_aivdm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/driver_aivdm.c b/driver_aivdm.c
index bdc19fba..c518a0c3 100644
--- a/driver_aivdm.c
+++ b/driver_aivdm.c
@@ -386,6 +386,13 @@ bool aivdm_decode(const char *buf, size_t buflen,
case 23: /* IMO289 - Area notice - addressed */
break;
case 25: /* IMO289 - Dangerous cargo indication */
+ ais->type6.dac1fid25.unit = UBITS(88, 2);
+ ais->type6.dac1fid25.amount = UBITS(90, 10);
+ for (i = 0; 100 + i*17 < (int)ais_context->bitlen; i++) {
+ ais->type6.dac1fid25.cargos[i].code = UBITS(100 + i*17, 4);
+ ais->type6.dac1fid25.cargos[i].subtype = UBITS(104 + i*17, 13);
+ }
+ ais->type6.dac1fid25.ncargos = i;
break;
case 28: /* IMO289 - Route info - addressed */
break;