diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2005-06-15 17:28:40 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2005-06-15 17:28:40 +0000 |
commit | 14bd6c57b9e479354eb0f60bae79dc274d54f0cb (patch) | |
tree | 7397271bf5bef76b4545e574cb523eca982cf40d /zodiac.c | |
parent | d7aa3db02d43fc7c123a2d3300116611ca835aa3 (diff) | |
download | gpsd-14bd6c57b9e479354eb0f60bae79dc274d54f0cb.tar.gz |
New packet-return API using newdata and explicit merging.
Diffstat (limited to 'zodiac.c')
-rw-r--r-- | zodiac.c | 34 |
1 files changed, 17 insertions, 17 deletions
@@ -139,9 +139,9 @@ static gps_mask_t handle1000(struct gps_device_t *session) /*@ -boolops -predboolothers @*/ session->gpsdata.status = (getword(10) & 0x1c) ? 0 : 1; if (session->gpsdata.status != 0) - session->gpsdata.fix.mode = (getword(10) & 1) ? MODE_2D : MODE_3D; + session->gpsdata.newdata.mode = (getword(10) & 1) ? MODE_2D : MODE_3D; else - session->gpsdata.fix.mode = MODE_NO_FIX; + session->gpsdata.newdata.mode = MODE_NO_FIX; /*@ +boolops -predboolothers @*/ /* solution_type = getword(11); */ @@ -157,40 +157,40 @@ static gps_mask_t handle1000(struct gps_device_t *session) session->gpsdata.nmea_date.tm_min = (int)getword(23); session->gpsdata.nmea_date.tm_sec = (int)getword(24); session->gpsdata.subseconds = (int)getlong(25) / 1e9; - session->gpsdata.fix.time = session->gpsdata.sentence_time = + session->gpsdata.newdata.time = session->gpsdata.sentence_time = (double)mkgmtime(&session->gpsdata.nmea_date) + session->gpsdata.subseconds; #ifdef NTPSHM_ENABLE - if (session->gpsdata.fix.mode > MODE_NO_FIX) - (void)ntpshm_put(session, session->gpsdata.fix.time + 1.1); + if (session->gpsdata.newdata.mode > MODE_NO_FIX) + (void)ntpshm_put(session, session->gpsdata.newdata.time + 1.1); #endif /*@ -type @*/ - session->gpsdata.fix.latitude = ((long)getlong(27)) * RAD_2_DEG * 1e-8; - session->gpsdata.fix.longitude = ((long)getlong(29)) * RAD_2_DEG * 1e-8; + session->gpsdata.newdata.latitude = ((long)getlong(27)) * RAD_2_DEG * 1e-8; + session->gpsdata.newdata.longitude = ((long)getlong(29)) * RAD_2_DEG * 1e-8; /* * The Rockwell Jupiter TU30-D140 reports altitude as uncorrected height * above WGS84 geoid. The Zodiac binary protocol manual does not * specify whether word 31 is geodetic or WGS 84. */ - session->gpsdata.fix.altitude = ((long)getlong(31)) * 1e-2; + session->gpsdata.newdata.altitude = ((long)getlong(31)) * 1e-2; /*@ +type @*/ session->gpsdata.separation = ((short)getword(33)) * 1e-2; - session->gpsdata.fix.altitude -= session->gpsdata.separation; - session->gpsdata.fix.speed = (int)getlong(34) * 1e-2; - session->gpsdata.fix.track = (int)getword(36) * RAD_2_DEG * 1e-3; + session->gpsdata.newdata.altitude -= session->gpsdata.separation; + session->gpsdata.newdata.speed = (int)getlong(34) * 1e-2; + session->gpsdata.newdata.track = (int)getword(36) * RAD_2_DEG * 1e-3; session->mag_var = ((short)getword(37)) * RAD_2_DEG * 1e-4; - session->gpsdata.fix.climb = ((short)getword(38)) * 1e-2; + session->gpsdata.newdata.climb = ((short)getword(38)) * 1e-2; /* map_datum = getword(39); */ - session->gpsdata.fix.eph = (int)getlong(40) * 1e-2; - session->gpsdata.fix.epv = (int)getlong(42) * 1e-2; - session->gpsdata.fix.ept = (int)getlong(44) * 1e-2; - session->gpsdata.fix.eps = (int)getword(46) * 1e-2; + session->gpsdata.newdata.eph = (int)getlong(40) * 1e-2; + session->gpsdata.newdata.epv = (int)getlong(42) * 1e-2; + session->gpsdata.newdata.ept = (int)getlong(44) * 1e-2; + session->gpsdata.newdata.eps = (int)getword(46) * 1e-2; /* clock_bias = (int)getlong(47) * 1e-2; */ /* clock_bias_sd = (int)getlong(49) * 1e-2; */ /* clock_drift = (int)getlong(51) * 1e-2; */ /* clock_drift_sd = (int)getlong(53) * 1e-2; */ #if 0 - gpsd_report(1, "date: %lf\n", session->gpsdata.fix.time); + gpsd_report(1, "date: %lf\n", session->gpsdata.newdata.time); gpsd_report(1, " solution invalid:\n"); gpsd_report(1, " altitude: %d\n", (getword(10) & 1) ? 1 : 0); gpsd_report(1, " no diff gps: %d\n", (getword(10) & 2) ? 1 : 0); |