summaryrefslogtreecommitdiff
path: root/driver_ais.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2013-10-01 04:32:49 -0400
committerEric S. Raymond <esr@thyrsus.com>2013-10-01 04:32:49 -0400
commitc7d520bd744044722270b96d8aea81be4d0d52c6 (patch)
treebf09f4b10259f2806a9b48e3c12bf12feb867dd7 /driver_ais.c
parentbcad85b7df2b911cb97904599d690456e323d2ad (diff)
downloadgpsd-c7d520bd744044722270b96d8aea81be4d0d52c6.tar.gz
Axccept Persons On Board as either a type 6 or 8 message.
Diffstat (limited to 'driver_ais.c')
-rw-r--r--driver_ais.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/driver_ais.c b/driver_ais.c
index b69a0592..b2131169 100644
--- a/driver_ais.c
+++ b/driver_ais.c
@@ -240,7 +240,7 @@ bool ais_binary_decode(const int debug,
ais->type6.dac1fid15.airdraught = UBITS(56, 11);
imo = true;
break;
- case 16: /* IMO236 - Number of persons on board */
+ case 16: /* IMO236 - Number of persons on board */
if (ais->type6.bitcount == 136)
ais->type6.dac1fid16.persons = UBITS(88, 13);/* 289 */
else
@@ -467,6 +467,13 @@ bool ais_binary_decode(const int debug,
/* skip 5 bits */
imo = true;
break;
+ case 16: /* Number of Persons On Board */
+ if (ais->type8.bitcount == 136)
+ ais->type8.dac1fid16.persons = UBITS(88, 13);/* 289 */
+ else
+ ais->type8.dac1fid16.persons = UBITS(55, 13);/* 236 */
+ imo = true;
+ break;
case 17: /* IMO289 - VTS-generated/synthetic targets */
#define ARRAY_BASE 56
#define ELEMENT_SIZE 122