From c700827479321d5a5ddf4275d390b3ad7ca53842 Mon Sep 17 00:00:00 2001 From: "Gary E. Miller" Date: Mon, 25 Mar 2019 19:28:21 -0700 Subject: gpsutils: Add datum_code_string(). These datum codes seem standard, other drivers will use them. --- gpsutils.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gpsutils.c') diff --git a/gpsutils.c b/gpsutils.c index c86608aa..55b6e531 100644 --- a/gpsutils.c +++ b/gpsutils.c @@ -662,4 +662,47 @@ bool nanowait(int fd, int nanoseconds) return pselect(fd + 1, &fdset, NULL, NULL, &to, NULL) == 1; } +/* Accept a datum code, return matching string + * + * There are a ton of these, only a few are here + * + */ +void datum_code_string(int code, char *buffer, size_t len) +{ + const char *datum_str; + + switch (code) { + case 0: + datum_str = "WGS84"; + break; + 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 = NULL; + break; + } + + if (NULL == datum_str) { + /* Fake it */ + snprintf(buffer, len, "%d", code); + } else { + strlcpy(buffer, datum_str, len); + } +} /* end */ -- cgit v1.2.1