summaryrefslogtreecommitdiff
path: root/driver_italk.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2018-06-17 22:05:12 -0700
committerGary E. Miller <gem@rellim.com>2018-06-17 22:05:12 -0700
commit3f44227075d3eb296e8ee79947e8380c773e8122 (patch)
tree5611d426ea15dcecb6c52a80505dddb1a4f1770a /driver_italk.c
parentfd34e846039cf97a142bc0d500d4095606f282c7 (diff)
downloadgpsd-3f44227075d3eb296e8ee79947e8380c773e8122.tar.gz
driver_italk: report ECEF in TPV.
Diffstat (limited to 'driver_italk.c')
-rw-r--r--driver_italk.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/driver_italk.c b/driver_italk.c
index fe7fa107..551f16eb 100644
--- a/driver_italk.c
+++ b/driver_italk.c
@@ -63,15 +63,18 @@ static gps_mask_t decode_itk_navfix(struct gps_device_t *session,
(unsigned int)getleu32(buf, 7 + 84) / 1000.0);
mask |= TIME_SET | NTPTIME_IS;
- epx = (double)(getles32(buf, 7 + 96) / 100.0);
- epy = (double)(getles32(buf, 7 + 100) / 100.0);
- epz = (double)(getles32(buf, 7 + 104) / 100.0);
- evx = (double)(getles32(buf, 7 + 186) / 1000.0);
- evy = (double)(getles32(buf, 7 + 190) / 1000.0);
- evz = (double)(getles32(buf, 7 + 194) / 1000.0);
+ session->newdata.ecef.x = (double)(getles32(buf, 7 + 96) / 100.0);
+ session->newdata.ecef.y = (double)(getles32(buf, 7 + 100) / 100.0);
+ session->newdata.ecef.z = (double)(getles32(buf, 7 + 104) / 100.0);
+ session->newdata.ecef.vx = (double)(getles32(buf, 7 + 186) / 1000.0);
+ session->newdata.ecef.vy = (double)(getles32(buf, 7 + 190) / 1000.0);
+ session->newdata.ecef.vz = (double)(getles32(buf, 7 + 194) / 1000.0);
ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation,
- epx, epy, epz, evx, evy, evz);
- mask |= LATLON_SET | ALTITUDE_SET | SPEED_SET | TRACK_SET | CLIMB_SET;
+ session->newdata.ecef.x, session->newdata.ecef.y,
+ session->newdata.ecef.z, session->newdata.ecef.vx,
+ session->newdata.ecef.vy, session->newdata.ecef.vz);
+ mask |= LATLON_SET | ALTITUDE_SET | SPEED_SET | TRACK_SET | CLIMB_SET
+ | ECEF_SET | VECEF_SET;
eph = (double)(getles32(buf, 7 + 252) / 100.0);
/* eph is a circular error, sqrt(epx**2 + epy**2) */
session->newdata.epx = session->newdata.epy = eph / sqrt(2);