summaryrefslogtreecommitdiff
path: root/driver_evermore.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2018-06-17 22:09:35 -0700
committerGary E. Miller <gem@rellim.com>2018-06-17 22:09:35 -0700
commit720a5ae0dc720a38d5dd82dcc28d0458d9d268fa (patch)
tree17b72552fb2910dbfe94f93bc20e1318416a68f9 /driver_evermore.c
parent3f44227075d3eb296e8ee79947e8380c773e8122 (diff)
downloadgpsd-720a5ae0dc720a38d5dd82dcc28d0458d9d268fa.tar.gz
driver_evermore: report ECEF in TPV.
Diffstat (limited to 'driver_evermore.c')
-rw-r--r--driver_evermore.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/driver_evermore.c b/driver_evermore.c
index 9d6623f7..0566f567 100644
--- a/driver_evermore.c
+++ b/driver_evermore.c
@@ -179,13 +179,16 @@ gps_mask_t evermore_parse(struct gps_device_t * session, unsigned char *buf,
session->newdata.time = gpsd_gpstime_resolve(session,
(unsigned short)getleu16(buf2, 3),
(double)getleu32(buf2, 5) * 0.01);
+ session->newdata.ecef.x = (double)getles32(buf2, 9) * 1.0,
+ session->newdata.ecef.y = (double)getles32(buf2, 13) * 1.0,
+ session->newdata.ecef.z = (double)getles32(buf2, 17) * 1.0,
+ session->newdata.ecef.vx = (double)getles16(buf2, 21) / 10.0,
+ session->newdata.ecef.vy = (double)getles16(buf2, 23) / 10.0,
+ session->newdata.ecef.vz = (double)getles16(buf2, 25) / 10.0;
ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation,
- (double)getles32(buf2, 9) * 1.0,
- (double)getles32(buf2, 13) * 1.0,
- (double)getles32(buf2, 17) * 1.0,
- (double)getles16(buf2, 21) / 10.0,
- (double)getles16(buf2, 23) / 10.0,
- (double)getles16(buf2, 25) / 10.0);
+ session->newdata.ecef.x, session->newdata.ecef.y,
+ session->newdata.ecef.z, session->newdata.ecef.vx,
+ session->newdata.ecef.vy, session->newdata.ecef.vz);
used = (unsigned char)getub(buf2, 27) & 0x0f;
//visible = (getub(buf2, 27) & 0xf0) >> 4;
version = (unsigned int) getleu16(buf2, 28) / 100.0;
@@ -198,7 +201,8 @@ gps_mask_t evermore_parse(struct gps_device_t * session, unsigned char *buf,
session->newdata.mode = MODE_3D;
mask |= ALTITUDE_SET | CLIMB_SET;
}
- mask |= TIME_SET | NTPTIME_IS | LATLON_SET | TRACK_SET | SPEED_SET | MODE_SET;
+ mask |= TIME_SET | NTPTIME_IS | LATLON_SET | TRACK_SET | SPEED_SET
+ | MODE_SET | ECEF_SET | VECEF_SET;
if (session->subtype[0] == '\0') {
(void)snprintf(session->subtype, sizeof(session->subtype),
"%3.2f", version);