diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2013-10-01 08:26:33 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2013-10-01 08:26:33 -0400 |
commit | c08194716380e2622fa6a301e598f65293d3f7d6 (patch) | |
tree | 8a8938b9e148b04561ed350060fde1f8a0bb7851 /ais_json.c | |
parent | e9a0ea3f35898b5d1c88e3f41c6989d522ef1ff7 (diff) | |
download | gpsd-c08194716380e2622fa6a301e598f65293d3f7d6.tar.gz |
Support for Inland AIS RTA at lock/bridge/terminal.
Diffstat (limited to 'ais_json.c')
-rw-r--r-- | ais_json.c | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -234,13 +234,29 @@ int json_ais_read(const char *buf, ais->type6.dac200fid21.hour = AIS_HOUR_NOT_AVAILABLE; ais->type6.dac200fid21.minute = AIS_MINUTE_NOT_AVAILABLE; // cppcheck-suppress uninitvar - (void)sscanf(start, "%02u-%02uT%02u:%02u", + (void)sscanf(eta, "%02u-%02uT%02u:%02u", &ais->type6.dac200fid21.month, &ais->type6.dac200fid21.day, &ais->type6.dac200fid21.hour, &ais->type6.dac200fid21.minute); } } + else if (strstr(buf, "\"fid\":22,") != NULL) { + status = json_read_object(buf, json_ais6_fid22, endptr); + imo = true; + if (status == 0) { + ais->type6.dac200fid22.month = AIS_MONTH_NOT_AVAILABLE; + ais->type6.dac200fid22.day = AIS_DAY_NOT_AVAILABLE; + ais->type6.dac200fid22.hour = AIS_HOUR_NOT_AVAILABLE; + ais->type6.dac200fid22.minute = AIS_MINUTE_NOT_AVAILABLE; + // cppcheck-suppress uninitvar + (void)sscanf(rta, "%02u-%02uT%02u:%02u", + &ais->type6.dac200fid22.month, + &ais->type6.dac200fid22.day, + &ais->type6.dac200fid22.hour, + &ais->type6.dac200fid22.minute); + } + } } if (!imo) { status = json_read_object(buf, json_ais6, endptr); |