summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2018-11-05 12:25:46 -0800
committerGary E. Miller <gem@rellim.com>2018-11-05 12:25:46 -0800
commitcd50be2d8baea1039c8eb19eef0f0152417e3ee2 (patch)
treeb3e96f61130a1c33a0ba9f70a821e23466643411
parentc236dda1008b5aa43748b312c747f9efa82a286b (diff)
downloadgpsd-cd50be2d8baea1039c8eb19eef0f0152417e3ee2.tar.gz
driver_ubw: don't bother to save invalid prMeas or cpMeas.
-rw-r--r--driver_ubx.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/driver_ubx.c b/driver_ubx.c
index 2991607e..7638a995 100644
--- a/driver_ubx.c
+++ b/driver_ubx.c
@@ -837,9 +837,10 @@ static gps_mask_t ubx_rxm_rawx(struct gps_device_t *session,
modf(session->newdata.time, &t_intp) * 10e8;
session->gpsdata.raw.mtime.tv_sec = (time_t)t_intp;
- /* this is so we can tell which never got set */
- for (i = 0; i < MAXCHANNELS; i++)
- session->gpsdata.raw.meas[i].svid = 0;
+ /* zero the measurement data */
+ /* so we can tell which meas never got set */
+ memset(session->gpsdata.raw.meas, 0, sizeof(session->gpsdata.raw.meas));
+
for (i = 0; i < numMeas; i++) {
int off = 32 * i;
/* psuedorange in meters */
@@ -900,8 +901,14 @@ static gps_mask_t ubx_rxm_rawx(struct gps_device_t *session,
session->gpsdata.raw.meas[i].freqid = freqId;
session->gpsdata.raw.meas[i].snr = cno;
session->gpsdata.raw.meas[i].satstat = trkStat;
- session->gpsdata.raw.meas[i].pseudorange = prMes;
- session->gpsdata.raw.meas[i].carrierphase = cpMes;
+ if (trkstat & 1) {
+ /* prMeas valid */
+ session->gpsdata.raw.meas[i].pseudorange = prMes;
+ }
+ if (trkstat & 2) {
+ /* cpMeas valid */
+ session->gpsdata.raw.meas[i].carrierphase = cpMes;
+ }
session->gpsdata.raw.meas[i].doppler = doMes;
session->gpsdata.raw.meas[i].codephase = NAN;
session->gpsdata.raw.meas[i].deltarange = NAN;