diff options
author | Gary E. Miller <gem@rellim.com> | 2019-03-25 18:49:42 -0700 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2019-03-25 18:49:42 -0700 |
commit | 6d22d7e1a224d227d6f268582e1a323cf7207cf8 (patch) | |
tree | 9fc1fcc258207de251177f0d942c5d6b0d38f6a9 /driver_sirf.c | |
parent | 98046eedbb1d6f2a67b631a93f9dbd0fa45a6c95 (diff) | |
download | gpsd-6d22d7e1a224d227d6f268582e1a323cf7207cf8.tar.gz |
driver_sirf: Decode datum. Finally a regression change!
Diffstat (limited to 'driver_sirf.c')
-rw-r--r-- | driver_sirf.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/driver_sirf.c b/driver_sirf.c index 83555055..b2bcb472 100644 --- a/driver_sirf.c +++ b/driver_sirf.c @@ -587,6 +587,7 @@ static gps_mask_t sirf_msg_67_1(struct gps_device_t *session, uint8_t time_source = 0; struct tm unpacked_date; unsigned char datum; + const char *datum_str; int64_t clk_bias; uint32_t clk_bias_error; int32_t clk_offset; @@ -650,6 +651,30 @@ static gps_mask_t sirf_msg_67_1(struct gps_device_t *session, mask |= TIME_SET; datum = getub(buf, 33); + switch (datum) { + case 21: + datum_str = "WGS84"; + break; + case 178: + datum_str = "Tokyo Mean"; + break; + case 179: + datum_str = "Tokyo-Japan"; + break; + case 180: + datum_str = "Tokyo-Korea"; + break; + case 181: + datum_str = "Tokyo-Okinawa"; + break; + case 182: + datum_str = "PZ90.11"; + break; + default: + datum_str = "Other"; + } + strlcpy(session->newdata.datum, datum_str, sizeof(session->newdata.datum)); + clk_bias = getbes64(buf, 34) / 100.0; clk_bias_error = getbeu32(buf, 42) / 100.0; clk_offset = getbes32(buf, 46) / 100.0; |