summaryrefslogtreecommitdiff
path: root/driver_sirf.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-03-25 19:28:21 -0700
committerGary E. Miller <gem@rellim.com>2019-03-25 19:28:21 -0700
commitc700827479321d5a5ddf4275d390b3ad7ca53842 (patch)
tree953fd770b8c38bd7e2a304df56c47a52ce76f636 /driver_sirf.c
parent3cc2e4cb35ff0f4d9d996e4b444d6c99ec1bd5aa (diff)
downloadgpsd-c700827479321d5a5ddf4275d390b3ad7ca53842.tar.gz
gpsutils: Add datum_code_string().
These datum codes seem standard, other drivers will use them.
Diffstat (limited to 'driver_sirf.c')
-rw-r--r--driver_sirf.c31
1 files changed, 5 insertions, 26 deletions
diff --git a/driver_sirf.c b/driver_sirf.c
index b2bcb472..6374b40c 100644
--- a/driver_sirf.c
+++ b/driver_sirf.c
@@ -587,7 +587,6 @@ 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;
@@ -651,29 +650,8 @@ 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));
+ datum_code_string(datum, session->newdata.datum,
+ sizeof(session->newdata.datum));
clk_bias = getbes64(buf, 34) / 100.0;
clk_bias_error = getbeu32(buf, 42) / 100.0;
@@ -769,8 +747,9 @@ static gps_mask_t sirf_msg_67_1(struct gps_device_t *session,
"GPS Week %d, tow %d.%03d, time %ld.%09ld\n",
gps_week, gps_tow, gps_tow_sub_ms, now.tv_sec, now.tv_nsec);
gpsd_log(&session->context->errout, debug_base,
- "UTC time %.9f leaps %u, datum %u\n",
- session->newdata.time, session->context->leap_seconds, datum);
+ "UTC time %.9f leaps %u, datum %s\n",
+ session->newdata.time, session->context->leap_seconds,
+ sizeof(session->newdata.datum));
gpsd_log(&session->context->errout, debug_base,
"solution_info %08x\n", solution_info);
gpsd_log(&session->context->errout, debug_base,