summaryrefslogtreecommitdiff
path: root/driver_superstar2.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2018-10-24 15:32:24 -0700
committerGary E. Miller <gem@rellim.com>2018-10-24 15:32:24 -0700
commitf1344151085131de7765ce37c9e5dab40c43e56d (patch)
tree29c134b34037b056b9e2f7b5ef54fcecd8f9f227 /driver_superstar2.c
parentec0243f268e8c44be5b3b1356059c42ae4a4bc80 (diff)
downloadgpsd-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.c19
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;