summaryrefslogtreecommitdiff
path: root/driver_superstar2.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver_superstar2.c')
-rw-r--r--driver_superstar2.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/driver_superstar2.c b/driver_superstar2.c
index 9dd0de87..f16f38d0 100644
--- a/driver_superstar2.c
+++ b/driver_superstar2.c
@@ -184,15 +184,15 @@ superstar2_msg_svinfo(struct gps_device_t *session,
/* get info for one channel/satellite */
int off = i * 5 + 5;
unsigned int porn;
+ bool used = (getub(buf, off) & 0x60) == 0x60;
if ((porn = (unsigned int)getub(buf, off) & 0x1f) == 0)
porn = (unsigned int)(getub(buf, off + 3) >> 1) + 87;
- bool used = (getub(buf, off) & 0x60) == 0x60;
- session->gpsdata.skyview[i].PRN = (int)porn;
+ session->gpsdata.skyview[i].PRN = (short)porn;
session->gpsdata.skyview[i].ss = (float)getub(buf, off + 4);
- session->gpsdata.skyview[i].elevation = (int)getsb(buf, off + 1);
- session->gpsdata.skyview[i].azimuth = (unsigned short)getub(buf, off + 2) +
- ((unsigned short)(getub(buf, off + 3) & 0x1) << 1);
+ session->gpsdata.skyview[i].elevation = (short)getsb(buf, off + 1);
+ session->gpsdata.skyview[i].azimuth = (short)getub(buf, off + 2) +
+ (short)((unsigned short)(getub(buf, off + 3) & 0x1) << 1);
session->gpsdata.skyview[i].used = used;
/*@ +charint @*/
if (used)
@@ -306,7 +306,7 @@ superstar2_msg_measurement(struct gps_device_t *session, unsigned char *buf,
for (i = 0; i < n; i++) {
unsigned long ul;
session->gpsdata.raw.mtime[i] = t;
- session->gpsdata.skyview[i].PRN = (int)getub(buf, 11 * i + 15) & 0x1f;
+ 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] =
(double)getleu32(buf, 11 * i * 15 + 2);