diff options
author | Gary E. Miller <gem@rellim.com> | 2018-06-17 22:05:12 -0700 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2018-06-17 22:05:12 -0700 |
commit | 3f44227075d3eb296e8ee79947e8380c773e8122 (patch) | |
tree | 5611d426ea15dcecb6c52a80505dddb1a4f1770a /driver_italk.c | |
parent | fd34e846039cf97a142bc0d500d4095606f282c7 (diff) | |
download | gpsd-3f44227075d3eb296e8ee79947e8380c773e8122.tar.gz |
driver_italk: report ECEF in TPV.
Diffstat (limited to 'driver_italk.c')
-rw-r--r-- | driver_italk.c | 19 |
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); |