summaryrefslogtreecommitdiff
path: root/driver_italk.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_italk.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_italk.c')
-rw-r--r--driver_italk.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/driver_italk.c b/driver_italk.c
index b0facb84..dfcd1874 100644
--- a/driver_italk.c
+++ b/driver_italk.c
@@ -260,17 +260,25 @@ static gps_mask_t decode_itk_pseudo(struct gps_device_t *session,
(unsigned short int)getleu16((char *)buf, 7 + 8),
(unsigned int)getleu32(buf, 7 + 38) / 1000.0);
+ /* 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++){
- session->gpsdata.skyview[i].PRN = getleu16(buf, 7 + 26 + (i*36)) & 0xff;
- session->gpsdata.skyview[i].ss = getleu16(buf, 7 + 26 + (i*36 + 2)) & 0x3f;
- session->gpsdata.raw.satstat[i] = getleu32(buf, 7 + 26 + (i*36 + 4));
- session->gpsdata.raw.pseudorange[i] = getled64((char *)buf, 7 + 26 + (i*36 + 8));
- session->gpsdata.raw.doppler[i] = getled64((char *)buf, 7 + 26 + (i*36 + 16));
- session->gpsdata.raw.carrierphase[i] = getleu16(buf, 7 + 26 + (i*36 + 28));
-
- session->gpsdata.raw.mtime[i] = session->newdata.time;
- session->gpsdata.raw.codephase[i] = NAN;
- session->gpsdata.raw.deltarange[i] = NAN;
+ session->gpsdata.skyview[i].PRN = \
+ getleu16(buf, 7 + 26 + (i*36)) & 0xff;
+ session->gpsdata.skyview[i].ss = \
+ getleu16(buf, 7 + 26 + (i*36 + 2)) & 0x3f;
+ session->gpsdata.raw[i].satstat = getleu32(buf, 7 + 26 + (i*36 + 4));
+ session->gpsdata.raw[i].pseudorange = \
+ getled64((char *)buf, 7 + 26 + (i*36 + 8));
+ session->gpsdata.raw[i].doppler = \
+ getled64((char *)buf, 7 + 26 + (i*36 + 16));
+ session->gpsdata.raw[i].carrierphase = \
+ getleu16(buf, 7 + 26 + (i*36 + 28));
+
+ session->gpsdata.raw[i].mtime = session->newdata.time;
+ session->gpsdata.raw[i].codephase = NAN;
+ session->gpsdata.raw[i].deltarange = NAN;
}
return RAW_IS;
}