diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2011-04-26 04:09:19 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-04-26 04:09:19 -0400 |
commit | 81b63fd48b46203934cff725deed556fed3cb206 (patch) | |
tree | 8f6cd10317d3e8e313d1680959451aa7c521775a /ais_json.c | |
parent | 0d31c2b7eaa32f6e806b0b380d6b52db2e8c1b77 (diff) | |
download | gpsd-81b63fd48b46203934cff725deed556fed3cb206.tar.gz |
In AS, support IMO 289 FID 20.
Also, clean up some issue with lat/lon scaling.
Diffstat (limited to 'ais_json.c')
-rw-r--r-- | ais_json.c | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -154,6 +154,21 @@ int json_ais_read(const char *buf, } imo = true; } + else if (strstr(buf, "\"fid\":20,") != NULL) { + status = json_read_object(buf, json_ais6_fid20, endptr); + if (status == 0) { + ais->type6.dac1fid20.month = AIS_MONTH_NOT_AVAILABLE; + ais->type6.dac1fid20.day = AIS_DAY_NOT_AVAILABLE; + ais->type6.dac1fid20.hour = AIS_HOUR_NOT_AVAILABLE; + ais->type6.dac1fid20.minute = AIS_MINUTE_NOT_AVAILABLE; + (void)sscanf(eta, "%02u-%02uT%02u:%02uZ", + &ais->type6.dac1fid20.month, + &ais->type6.dac1fid20.day, + &ais->type6.dac1fid20.hour, + &ais->type6.dac1fid20.minute); + } + imo = true; + } else if (strstr(buf, "\"fid\":25,") != NULL) { status = json_read_object(buf, json_ais6_fid25, endptr); imo = true; @@ -219,8 +234,6 @@ int json_ais_read(const char *buf, ais->type17.bitdata, sizeof(ais->type17.bitdata)); } else if (strstr(buf, "\"type\":18,") != NULL) { status = json_read_object(buf, json_ais18, endptr); - } else if (strstr(buf, "\"type\":18,") != NULL) { - status = json_read_object(buf, json_ais17, endptr); } else if (strstr(buf, "\"type\":19,") != NULL) { status = json_read_object(buf, json_ais19, endptr); } else if (strstr(buf, "\"type\":20,") != NULL) { |