summaryrefslogtreecommitdiff
path: root/gpsdecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'gpsdecode.c')
-rw-r--r--gpsdecode.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gpsdecode.c b/gpsdecode.c
index 35b5cc7f..22238817 100644
--- a/gpsdecode.c
+++ b/gpsdecode.c
@@ -51,6 +51,7 @@ static void aivdm_csv_dump(struct ais_t *ais, char *buf, size_t buflen)
{
char scratchbuf[MAX_PACKET_LENGTH*2+1];
bool imo = false;
+
(void)snprintf(buf, buflen, "%u|%u|%09u|", ais->type, ais->repeat,
ais->mmsi);
/*@ -formatcode @*/
@@ -548,7 +549,6 @@ static void decode(FILE *fpin, FILE*fpout)
gpsd_clear(&session);
session.gpsdata.gps_fd = fileno(fpin);
session.gpsdata.dev.baudrate = 38400; /* hack to enable subframes */
- session.gpsdata.policy.split24 = split24;
(void)strlcpy(session.gpsdata.dev.path,
"stdin",
sizeof(session.gpsdata.dev.path));
@@ -574,6 +574,10 @@ static void decode(FILE *fpin, FILE*fpout)
}
#ifdef SOCKET_EXPORT_ENABLE
else {
+ if ((changed & AIS_SET)!=0) {
+ if (session.gpsdata.ais.type == 24 && session.gpsdata.ais.type24.part != both && !split24)
+ continue;
+ }
json_data_report(changed,
&session, &policy,
buf, sizeof(buf));
@@ -583,6 +587,8 @@ static void decode(FILE *fpin, FILE*fpout)
#ifdef AIVDM_ENABLE
} else if (session.packet.type == AIVDM_PACKET) {
if ((changed & AIS_SET)!=0) {
+ if (session.gpsdata.ais.type == 24 && session.gpsdata.ais.type24.part != both && !split24)
+ continue;
aivdm_csv_dump(&session.gpsdata.ais, buf, sizeof(buf));
(void)fputs(buf, fpout);
}