diff options
author | Gary E. Miller <gem@rellim.com> | 2018-06-17 22:09:35 -0700 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2018-06-17 22:09:35 -0700 |
commit | 720a5ae0dc720a38d5dd82dcc28d0458d9d268fa (patch) | |
tree | 17b72552fb2910dbfe94f93bc20e1318416a68f9 /driver_evermore.c | |
parent | 3f44227075d3eb296e8ee79947e8380c773e8122 (diff) | |
download | gpsd-720a5ae0dc720a38d5dd82dcc28d0458d9d268fa.tar.gz |
driver_evermore: report ECEF in TPV.
Diffstat (limited to 'driver_evermore.c')
-rw-r--r-- | driver_evermore.c | 18 |
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); |