summaryrefslogtreecommitdiff
path: root/rtcm2_json.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2011-02-28 17:42:53 -0500
committerEric S. Raymond <esr@thyrsus.com>2011-02-28 17:42:53 -0500
commitc9c70d8fa2483a506b3b14c68f7c0ca7a69897df (patch)
tree9fff2eda19cc4e726531de115e43dffab542fa95 /rtcm2_json.c
parent5f28af9f91b118e13c49b949777187ab57d1cff2 (diff)
downloadgpsd-c9c70d8fa2483a506b3b14c68f7c0ca7a69897df.tar.gz
Implement and document RTCM 2.3 message type 13.
Diffstat (limited to 'rtcm2_json.c')
-rw-r--r--rtcm2_json.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/rtcm2_json.c b/rtcm2_json.c
index 7ea15c3e..14d8e3cb 100644
--- a/rtcm2_json.c
+++ b/rtcm2_json.c
@@ -147,6 +147,18 @@ int json_rtcm2_read(const char *buf,
};
/*@+type@*/
+ const struct json_attr_t json_rtcm13[] = {
+ RTCM2_HEADER
+ {"status", t_boolean, .addr.boolean = &rtcm2->xmitter.status},
+ {"rangeflag", t_boolean, .addr.boolean = &rtcm2->xmitter.rangeflag},
+ {"lat", t_real, .addr.real = &rtcm2->xmitter.lat,
+ .dflt.real = NAN},
+ {"lon", t_real, .addr.real = &rtcm2->xmitter.lon,
+ .dflt.real = NAN},
+ {"range", t_uinteger, .addr.uinteger = &rtcm2->xmitter.range},
+ {NULL},
+ };
+
const struct json_attr_t json_rtcm14[] = {
RTCM2_HEADER
{"week", t_uinteger, .addr.uinteger = &rtcm2->gpstime.week},
@@ -208,6 +220,8 @@ int json_rtcm2_read(const char *buf,
status = json_read_object(buf, json_rtcm7, endptr);
if (status == 0)
rtcm2->almanac.nentries = (unsigned)satcount;
+ } else if (strstr(buf, "\"type\":13,") != NULL) {
+ status = json_read_object(buf, json_rtcm13, endptr);
} else if (strstr(buf, "\"type\":14,") != NULL) {
status = json_read_object(buf, json_rtcm14, endptr);
} else if (strstr(buf, "\"type\":16,") != NULL) {