From cd50be2d8baea1039c8eb19eef0f0152417e3ee2 Mon Sep 17 00:00:00 2001 From: "Gary E. Miller" Date: Mon, 5 Nov 2018 12:25:46 -0800 Subject: driver_ubw: don't bother to save invalid prMeas or cpMeas. --- driver_ubx.c | 17 ++++++++++++----- 1 file 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; -- cgit v1.2.1