summaryrefslogtreecommitdiff
path: root/gpsutils.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 /gpsutils.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 'gpsutils.c')
-rw-r--r--gpsutils.c43
1 files changed, 43 insertions, 0 deletions
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 */