diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2011-04-25 16:30:32 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-04-25 16:30:32 -0400 |
commit | cee7beef1583b8bbd9b7b6bbcd3b8e604fad224c (patch) | |
tree | ca6361bf93ce2d84765bc739c84d7d866b94877e /driver_aivdm.c | |
parent | 78ed39bd60d8356c49a9669495e5f3af35196bb8 (diff) | |
download | gpsd-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.c | 7 |
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; |