diff options
author | Gary E. Miller <gem@rellim.com> | 2018-10-24 15:32:24 -0700 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2018-10-24 15:32:24 -0700 |
commit | f1344151085131de7765ce37c9e5dab40c43e56d (patch) | |
tree | 29c134b34037b056b9e2f7b5ef54fcecd8f9f227 /driver_superstar2.c | |
parent | ec0243f268e8c44be5b3b1356059c42ae4a4bc80 (diff) | |
download | gpsd-f1344151085131de7765ce37c9e5dab40c43e56d.tar.gz |
rawdata_t: Change data structure.
The rawdata_t structure was written into, but never read from. So
a change to it is low impact. Reorder it to simplify pointer
arithmetic. In preparation for more changes.
Diffstat (limited to 'driver_superstar2.c')
-rw-r--r-- | driver_superstar2.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/driver_superstar2.c b/driver_superstar2.c index 79e186f1..fb832c9f 100644 --- a/driver_superstar2.c +++ b/driver_superstar2.c @@ -297,18 +297,23 @@ superstar2_msg_measurement(struct gps_device_t *session, unsigned char *buf, return 0; } t = getled64((char *)buf, 7); /* measurement time */ + /* this is so we can tell which never got set */ + for (i = 0; i < MAXCHANNELS; i++) + session->gpsdata.raw[i].mtime = 0; for (i = 0; i < n; i++) { unsigned long ul; - session->gpsdata.raw.mtime[i] = t; - session->gpsdata.skyview[i].PRN = (short)(getub(buf, 11 * i + 15) & 0x1f); - session->gpsdata.skyview[i].ss = (double)getub(buf, 11 * i * 15 + 1) / 4.0; - session->gpsdata.raw.codephase[i] = + session->gpsdata.raw[i].mtime = t; + session->gpsdata.skyview[i].PRN = \ + (short)(getub(buf, 11 * i + 15) & 0x1f); + session->gpsdata.skyview[i].ss = \ + (double)getub(buf, 11 * i * 15 + 1) / 4.0; + session->gpsdata.raw[i].codephase = (double)getleu32(buf, 11 * i * 15 + 2); ul = (unsigned long)getleu32(buf, 11 * i * 15 + 6); - session->gpsdata.raw.satstat[i] = (unsigned int)(ul & 0x03L); - session->gpsdata.raw.carrierphase[i] = (double)((ul >> 2) & 0x03ffL); - session->gpsdata.raw.pseudorange[i] = (double)(ul >> 12); + session->gpsdata.raw[i].satstat = (unsigned int)(ul & 0x03L); + session->gpsdata.raw[i].carrierphase = (double)((ul >> 2) & 0x03ffL); + session->gpsdata.raw[i].pseudorange = (double)(ul >> 12); } mask |= RAW_IS; |