summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.splintrc3
-rw-r--r--driver_evermore.c9
-rw-r--r--driver_garmin.c6
-rw-r--r--driver_geostar.c8
-rw-r--r--driver_oncore.c2
-rw-r--r--driver_sirf.c21
-rw-r--r--driver_tsip.c26
-rw-r--r--gpsd_json.c24
-rw-r--r--monitor_oncore.c14
-rw-r--r--monitor_sirf.c6
-rw-r--r--monitor_superstar2.c2
-rw-r--r--monitor_ubx.c4
-rw-r--r--subframe.c54
13 files changed, 91 insertions, 88 deletions
diff --git a/.splintrc b/.splintrc
index dc94b190..38f1cf51 100644
--- a/.splintrc
+++ b/.splintrc
@@ -10,9 +10,6 @@
-nestedextern
-abstract
--Dint8_t=char
--Dint16_t=short
--Dint32_t=int
-Din_addr_t=int
-Dcaddr_t=short
-Disgps30bits_t=uint
diff --git a/driver_evermore.c b/driver_evermore.c
index 8145340d..700d66ba 100644
--- a/driver_evermore.c
+++ b/driver_evermore.c
@@ -190,9 +190,12 @@ gps_mask_t evermore_parse(struct gps_device_t * session, unsigned char *buf,
(unsigned short)getleu16(buf2, 2),
(double)getleu32(buf2, 4) * 0.01);
ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation,
- getles32(buf2, 8) * 1.0, getles32(buf2, 12) * 1.0,
- getles32(buf2, 16) * 1.0, getles16(buf2, 20) / 10.0,
- getles16(buf2, 22) / 10.0, getles16(buf2, 24) / 10.0);
+ (double)getles32(buf2, 8) * 1.0,
+ (double)getles32(buf2, 12) * 1.0,
+ (double)getles32(buf2, 16) * 1.0,
+ (double)getles16(buf2, 20) / 10.0,
+ (double)getles16(buf2, 22) / 10.0,
+ (double)getles16(buf2, 24) / 10.0);
used = (unsigned char)getub(buf2, 26) & 0x0f;
//visible = (getub(buf2, 26) & 0xf0) >> 4;
version = (uint) getleu16(buf2, 27) / 100.0;
diff --git a/driver_garmin.c b/driver_garmin.c
index 3e671fc4..0b172f12 100644
--- a/driver_garmin.c
+++ b/driver_garmin.c
@@ -369,7 +369,7 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id,
time_l = (time_t) (631065600 + (GPSD_LE32TOH(pvt->grmn_days) * 86400));
// TODO, convert grmn_days to context->gps_week
time_l -= GPSD_LE16TOH(pvt->leap_sec);
- session->context->leap_seconds = GPSD_LE16TOH(pvt->leap_sec);
+ session->context->leap_seconds = (int)GPSD_LE16TOH(pvt->leap_sec);
session->context->valid = LEAP_SECOND_VALID;
// gps_tow is always like x.999 or x.998 so just round it
time_l += (time_t) round(pvt->gps_tow);
@@ -513,9 +513,9 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id,
GPSD_LE32TOH(rmd->sv[i].cycles),
rmd->sv[i].pr,
(GPSD_LE16TOH(rmd->sv[i].phase) * 360.0) / 2048.0,
- rmd->sv[i].slp_dtct != '\0' ? "Yes" : "No",
+ rmd->sv[i].slp_dtct != 0 ? "Yes" : "No",
rmd->sv[i].snr_dbhz,
- rmd->sv[i].valid != '\0' ? "Yes" : "No");
+ rmd->sv[i].valid != 0 ? "Yes" : "No");
}
break;
diff --git a/driver_geostar.c b/driver_geostar.c
index b75c7521..27e1272b 100644
--- a/driver_geostar.c
+++ b/driver_geostar.c
@@ -191,7 +191,7 @@ static gps_mask_t geostar_analyze(struct gps_device_t *session)
session->newdata.longitude = getled(buf, OFFSET(5)) * RAD_2_DEG;
session->newdata.altitude = getled(buf, OFFSET(7));
session->gpsdata.separation = getled(buf, OFFSET(9));
- session->gpsdata.satellites_used = getles32(buf, OFFSET(11));
+ session->gpsdata.satellites_used = (int)getles32(buf, OFFSET(11));
session->gpsdata.dop.gdop = getled(buf, OFFSET(13));
session->gpsdata.dop.pdop = getled(buf, OFFSET(15));
session->gpsdata.dop.tdop = getled(buf, OFFSET(17));
@@ -262,9 +262,9 @@ static gps_mask_t geostar_analyze(struct gps_device_t *session)
gpsd_report(LOG_INF, "ID %d Az %g El %g SNR %g\n",
decode_channel_id(ul2), s1*0.001*RAD_2_DEG, s2*0.001*RAD_2_DEG, s3*0.1);
session->gpsdata.PRN[i] = decode_channel_id(ul2);
- session->gpsdata.azimuth[i] = (int)round(s1*0.001 * RAD_2_DEG);
- session->gpsdata.elevation[i] = (int)round(s2*0.001 * RAD_2_DEG);
- session->gpsdata.ss[i] = s3*0.1;
+ session->gpsdata.azimuth[i] = (int)round((double)s1*0.001 * RAD_2_DEG);
+ session->gpsdata.elevation[i] = (int)round((double)s2*0.001 * RAD_2_DEG);
+ session->gpsdata.ss[i] = (double)s3*0.1;
if(ul2 & (1<<27)) {
session->gpsdata.used[j++] = decode_channel_id(ul2);
}
diff --git a/driver_oncore.c b/driver_oncore.c
index 0f40c6a9..33cb94cf 100644
--- a/driver_oncore.c
+++ b/driver_oncore.c
@@ -253,7 +253,7 @@ oncore_msg_pps_offset(struct gps_device_t *session, unsigned char *buf,
return 0;
gpsd_report(LOG_IO, "oncore PPS offset\n");
- pps_offset_ns = getbes32(buf, 4);
+ pps_offset_ns = (int)getbes32(buf, 4);
session->driver.oncore.pps_offset_ns = pps_offset_ns;
return 0;
diff --git a/driver_sirf.c b/driver_sirf.c
index 6127b3b5..0f5aaa6f 100644
--- a/driver_sirf.c
+++ b/driver_sirf.c
@@ -610,9 +610,12 @@ static gps_mask_t sirf_msg_navsol(struct gps_device_t *session,
session->gpsdata.used[i] = (int)getub(buf, 29 + i);
/* position/velocity is bytes 1-18 */
ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation,
- getbes32(buf, 1) * 1.0, getbes32(buf, 5) * 1.0,
- getbes32(buf, 9) * 1.0, getbes16(buf, 13) / 8.0,
- getbes16(buf, 15) / 8.0, getbes16(buf, 17) / 8.0);
+ (double)getbes32(buf, 1) * 1.0,
+ (double)getbes32(buf, 5) * 1.0,
+ (double)getbes32(buf, 9) * 1.0,
+ (double)getbes16(buf, 13) / 8.0,
+ (double)getbes16(buf, 15) / 8.0,
+ (double)getbes16(buf, 17) / 8.0);
/* fix status is byte 19 */
navtype = (unsigned short)getub(buf, 19);
session->gpsdata.status = STATUS_NO_FIX;
@@ -863,16 +866,16 @@ static gps_mask_t sirf_msg_ublox(struct gps_device_t *session,
/* this packet is only sent by uBlox firmware from version 1.32 */
mask = LATLON_IS | ALTITUDE_IS | SPEED_IS | TRACK_IS | CLIMB_IS |
STATUS_IS | MODE_IS | DOP_IS;
- session->newdata.latitude = getbes32(buf, 1) * RAD_2_DEG * 1e-8;
- session->newdata.longitude = getbes32(buf, 5) * RAD_2_DEG * 1e-8;
+ session->newdata.latitude = (double)getbes32(buf, 1) * RAD_2_DEG * 1e-8;
+ session->newdata.longitude = (double)getbes32(buf, 5) * RAD_2_DEG * 1e-8;
session->gpsdata.separation =
wgs84_separation(session->newdata.latitude,
session->newdata.longitude);
session->newdata.altitude =
- getbes32(buf, 9) * 1e-3 - session->gpsdata.separation;
- session->newdata.speed = getbes32(buf, 13) * 1e-3;
- session->newdata.climb = getbes32(buf, 17) * 1e-3;
- session->newdata.track = getbes32(buf, 21) * RAD_2_DEG * 1e-8;
+ (double)getbes32(buf, 9) * 1e-3 - session->gpsdata.separation;
+ session->newdata.speed = (double)getbes32(buf, 13) * 1e-3;
+ session->newdata.climb = (double)getbes32(buf, 17) * 1e-3;
+ session->newdata.track = (double)getbes32(buf, 21) * RAD_2_DEG * 1e-8;
navtype = (unsigned short)getub(buf, 25);
session->gpsdata.status = STATUS_NO_FIX;
diff --git a/driver_tsip.c b/driver_tsip.c
index 68582009..53d53bb5 100644
--- a/driver_tsip.c
+++ b/driver_tsip.c
@@ -616,15 +616,15 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
d5 = 0.02;
else
d5 = 0.005;
- d1 = s1 * d5; /* east velocity m/s */
- d2 = s2 * d5; /* north velocity m/s */
- session->newdata.climb = s3 * d5; /* up velocity m/s */
+ d1 = (double)s1 * d5; /* east velocity m/s */
+ d2 = (double)s2 * d5; /* north velocity m/s */
+ session->newdata.climb = (double)s3 * d5; /* up velocity m/s */
/*@ -evalorder @*/
session->newdata.speed = sqrt(pow(d2, 2) + pow(d1, 2));
/*@ +evalorder @*/
if ((session->newdata.track = atan2(d1, d2) * RAD_2_DEG) < 0)
session->newdata.track += 360.0;
- session->newdata.latitude = sl1 * SEMI_2_DEG;
+ session->newdata.latitude = (double)sl1 * SEMI_2_DEG;
/*@i1@*/session->newdata.longitude = ul2 * SEMI_2_DEG;
if (session->newdata.longitude > 180.0)
session->newdata.longitude -= 360.0;
@@ -632,7 +632,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
wgs84_separation(session->newdata.latitude,
session->newdata.longitude);
session->newdata.altitude =
- sl2 * 1e-3 - session->gpsdata.separation;;
+ (double)sl2 * 1e-3 - session->gpsdata.separation;;
session->gpsdata.status = STATUS_NO_FIX;
session->newdata.mode = MODE_NO_FIX;
if ((u2 & 0x01) == (uint8_t) 0) { /* Fix Available */
@@ -700,22 +700,22 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
else
session->newdata.mode = MODE_3D;
}
- session->newdata.latitude = sl1 * SEMI_2_DEG;
- /*@i1@*/session->newdata.longitude = ul2 * SEMI_2_DEG;
+ session->newdata.latitude = (double)sl1 * SEMI_2_DEG;
+ session->newdata.longitude = (double)ul2 * SEMI_2_DEG;
if (session->newdata.longitude > 180.0)
session->newdata.longitude -= 360.0;
session->gpsdata.separation =
wgs84_separation(session->newdata.latitude,
session->newdata.longitude);
session->newdata.altitude =
- sl3 * 1e-3 - session->gpsdata.separation;;
+ (double)sl3 * 1e-3 - session->gpsdata.separation;;
if ((u2 & 0x20) != (uint8_t) 0) /* check velocity scaling */
d5 = 0.02;
else
d5 = 0.005;
- d1 = s2 * d5; /* east velocity m/s */
- d2 = s3 * d5; /* north velocity m/s */
- session->newdata.climb = s4 * d5; /* up velocity m/s */
+ d1 = (double)s2 * d5; /* east velocity m/s */
+ d2 = (double)s3 * d5; /* north velocity m/s */
+ session->newdata.climb = (double)s4 * d5; /* up velocity m/s */
/*@ -evalorder @*/
session->newdata.speed =
sqrt(pow(d2, 2) + pow(d1, 2)) * MPS_TO_KNOTS;
@@ -743,14 +743,14 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
}
session->driver.tsip.last_41 = now; /* keep timestamp for request */
ul1 = getbeu32(buf, 1); /* gpstime */
- s1 = (short)getbeu16(buf, 5); /* week */
+ s1 = (int16_t)getbeu16(buf, 5); /* week */
s2 = getbes16(buf, 7); /* leap seconds */
if ((int)u1 > 10) {
session->context->leap_seconds = (int)s2;
session->context->valid |= LEAP_SECOND_VALID;
session->newdata.time =
- gpsd_gpstime_resolve(session, s1, (double)ul1);
+ gpsd_gpstime_resolve(session, (unsigned short)s1, (double)ul1);
mask |= TIME_IS | CLEAR_IS;
gpsd_report(LOG_DATA, "SP-TTS 0xab time=%.2f mask={TIME}\n",
session->newdata.time);
diff --git a/gpsd_json.c b/gpsd_json.c
index 7a7ca8ad..797023e4 100644
--- a/gpsd_json.c
+++ b/gpsd_json.c
@@ -451,8 +451,8 @@ void json_subframe_dump(const struct subframe_t *subframe, bool scaled,
(int)subframe->sub1.Tgd,
(unsigned int)subframe->sub1.toc,
(long)subframe->sub1.af2,
- subframe->sub1.af1,
- subframe->sub1.af0);
+ (int)subframe->sub1.af1,
+ (int)subframe->sub1.af0);
}
} else if ( 2 == subframe->subframe_num ) {
if (scaled) {
@@ -477,12 +477,12 @@ void json_subframe_dump(const struct subframe_t *subframe, bool scaled,
"\"M0\":%ld,\"Cuc\":%d,\"e\":%ld,\"Cus\":%d,"
"\"sqrtA\":%lu,\"toe\":%lu,\"FIT\":%u,\"AODO\":%u}",
(unsigned int)subframe->sub2.IODE,
- subframe->sub2.Crs,
- subframe->sub2.deltan,
+ (int)subframe->sub2.Crs,
+ (int)subframe->sub2.deltan,
(long)subframe->sub2.M0,
- subframe->sub2.Cuc,
+ (int)subframe->sub2.Cuc,
(long)subframe->sub2.e,
- subframe->sub2.Cus,
+ (int)subframe->sub2.Cus,
(unsigned long)subframe->sub2.sqrtA,
(unsigned long)subframe->sub2.toe,
(unsigned int)subframe->sub2.fit,
@@ -512,9 +512,9 @@ void json_subframe_dump(const struct subframe_t *subframe, bool scaled,
(unsigned int)subframe->sub3.IDOT,
(unsigned int)subframe->sub3.Cic,
(long int)subframe->sub3.Omega0,
- subframe->sub3.Cis,
+ (int)subframe->sub3.Cis,
(long int)subframe->sub3.i0,
- subframe->sub3.Crc,
+ (int)subframe->sub3.Crc,
(long int)subframe->sub3.omega,
(long int)subframe->sub3.Omegad );
}
@@ -550,14 +550,14 @@ void json_subframe_dump(const struct subframe_t *subframe, bool scaled,
(unsigned int)subframe->sub5.almanac.svh,
(unsigned int)subframe->sub5.almanac.e,
(unsigned int)subframe->sub5.almanac.toa,
- subframe->sub5.almanac.deltai,
- subframe->sub5.almanac.Omegad,
+ (int)subframe->sub5.almanac.deltai,
+ (int)subframe->sub5.almanac.Omegad,
(unsigned long)subframe->sub5.almanac.sqrtA,
(long)subframe->sub5.almanac.Omega0,
(long)subframe->sub5.almanac.omega,
(long)subframe->sub5.almanac.M0,
- subframe->sub5.almanac.af0,
- subframe->sub5.almanac.af1);
+ (int)subframe->sub5.almanac.af0,
+ (int)subframe->sub5.almanac.af1);
}
} else if ( 4 == subframe->subframe_num ) {
(void)snprintf(buf + len, buflen - len,
diff --git a/monitor_oncore.c b/monitor_oncore.c
index e97dadb2..29d462ed 100644
--- a/monitor_oncore.c
+++ b/monitor_oncore.c
@@ -200,9 +200,9 @@ static void oncore_update(void)
sec = (unsigned char)getub(buf, 10);
nsec = (unsigned int)getbeu32(buf, 11);
- lat = getbes32(buf, 15) / 3600000.0;
- lon = getbes32(buf, 19) / 3600000.0;
- alt = getbes32(buf, 23) / 100.0;
+ lat = (double)getbes32(buf, 15) / 3600000.0;
+ lon = (double)getbes32(buf, 19) / 3600000.0;
+ alt = (double)getbes32(buf, 23) / 100.0;
speed = (float)(getbeu16(buf, 31) / 100.0);
track = (float)(getbeu16(buf, 33) / 10.0);
dop = (float)(getbeu16(buf, 35) / 10.0);
@@ -391,7 +391,7 @@ static void oncore_update(void)
{
double pps_offset;
- pps_offset = getbes32(buf, 4) / 1000000.0;
+ pps_offset = (double)getbes32(buf, 4) / 1000000.0;
(void)mvwprintw(Aywin, 2, 2, " %7.3f ms", pps_offset);
}
@@ -415,9 +415,9 @@ static void oncore_update(void)
{
double lat, lon, alt;
- lat = getbes32(buf, 4) / 3600000.0;
- lon = getbes32(buf, 8) / 3600000.0;
- alt = getbes32(buf, 12) / 100.0;
+ lat = (double)getbes32(buf, 4) / 3600000.0;
+ lon = (double)getbes32(buf, 8) / 3600000.0;
+ alt = (double)getbes32(buf, 12) / 100.0;
(void)mvwprintw(Aswin, 1, 5, "%10.6lf %c",
fabs(lat), lat < 0 ? 'S' : lat > 0 ? 'N' : ' ');
diff --git a/monitor_sirf.c b/monitor_sirf.c
index 4511ed6e..3a715beb 100644
--- a/monitor_sirf.c
+++ b/monitor_sirf.c
@@ -318,7 +318,7 @@ static void sirf_update(void)
(double)getbes32(buf, 9), (double)getbes16(buf, 13) / 8,
(double)getbes16(buf, 15) / 8, (double)getbes16(buf,
17) / 8);
- decode_time((int)getbeu16(buf, 22), getbes32(buf, 24));
+ decode_time((int)getbeu16(buf, 22), (int)getbes32(buf, 24));
/* line 4 */
(void)wmove(mid2win, 4, 49);
(void)wprintw(mid2win, "%4.1f", (double)getub(buf, 20) / 5); /* HDOP */
@@ -340,7 +340,7 @@ static void sirf_update(void)
break;
case 0x04: /* Measured Tracking Data */
- decode_time((int)getbeu16(buf, 1), getbes32(buf, 3));
+ decode_time((int)getbeu16(buf, 1), (int)getbes32(buf, 3));
ch = (int)getub(buf, 7);
for (i = 0; i < ch; i++) {
int sv, st;
@@ -405,7 +405,7 @@ static void sirf_update(void)
break;
case 0x07: /* Response - Clock Status Data */
- decode_time((int)getbeu16(buf, 1), getbes32(buf, 3));
+ decode_time((int)getbeu16(buf, 1), (int)getbes32(buf, 3));
display(mid7win, 1, 5, "%2d", getub(buf, 7)); /* SVs */
display(mid7win, 1, 16, "%lu", getbeu32(buf, 8)); /* Clock drift */
display(mid7win, 1, 29, "%lu", getbeu32(buf, 12)); /* Clock Bias */
diff --git a/monitor_superstar2.c b/monitor_superstar2.c
index 58c1b1af..d014d836 100644
--- a/monitor_superstar2.c
+++ b/monitor_superstar2.c
@@ -51,7 +51,7 @@ static void display_superstar2_svinfo(unsigned char *buf, size_t data_len)
/*@ -charint */
ss = (unsigned char)getub(buf, off + 4);
- el = getsb(buf, off + 1);
+ el = (char)getsb(buf, off + 1);
az = (unsigned short)(getub(buf, off + 2) +
((getub(buf, off + 3) & 0x1) << 1));
fl = (unsigned char)getub(buf, off) & 0xe0;
diff --git a/monitor_ubx.c b/monitor_ubx.c
index dc6adbc2..6acd897f 100644
--- a/monitor_ubx.c
+++ b/monitor_ubx.c
@@ -93,8 +93,8 @@ static void display_nav_svinfo(unsigned char *buf, size_t data_len)
prn = (unsigned char)getub(buf, off + 1);
fl = (unsigned short)getleu16(buf, off + 2);
ss = (unsigned char)getub(buf, off + 4);
- el = getsb(buf, off + 5);
- az = getles16(buf, off + 6);
+ el = (char)getsb(buf, off + 5);
+ az = (short)getles16(buf, off + 6);
(void)wmove(satwin, (int)(i + 2), 4);
(void)wprintw(satwin, "%3d %3d %3d %2d %04x %c",
prn, az, el, ss, fl, (fl & UBX_SAT_USED) ? 'Y' : ' ');
diff --git a/subframe.c b/subframe.c
index fc689793..7738d7d7 100644
--- a/subframe.c
+++ b/subframe.c
@@ -213,15 +213,15 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
subp->sub1.hlth = (unsigned int)((words[2] >> 2) & 0x00003F); /* SV health */
subp->sub1.IODC = (words[2] & 0x000003); /* IODC 2 MSB */
subp->sub1.l2p = ((words[3] >> 23) & 0x000001); /* L2 P flag */
- subp->sub1.Tgd = (char)( words[6] & 0x0000FF);
+ subp->sub1.Tgd = (int8_t)( words[6] & 0x0000FF);
subp->sub1.d_Tgd = pow(2.0, -31) * (int)subp->sub1.Tgd;
subp->sub1.toc = ( words[7] & 0x00FFFF);
subp->sub1.l_toc = (long)subp->sub1.toc << 4;
- subp->sub1.af2 = (char)((words[8] >> 16) & 0x0FF);
+ subp->sub1.af2 = (int8_t)((words[8] >> 16) & 0x0FF);
subp->sub1.d_af2 = pow(2.0, -55) * (int)subp->sub1.af2;
- subp->sub1.af1 = (short)( words[8] & 0x00FFFF);
+ subp->sub1.af1 = (int16_t)( words[8] & 0x00FFFF);
subp->sub1.d_af1 = pow(2.0, -43) * subp->sub1.af1;
- subp->sub1.af0 = (int)((words[9] >> 1) & 0x03FFFFF);
+ subp->sub1.af0 = (int32_t)((words[9] >> 1) & 0x03FFFFF);
subp->sub1.af0 = uint2int(subp->sub1.af0, 22);
subp->sub1.d_af0 = pow(2.0, -31) * subp->sub1.af0;
subp->sub1.IODC <<= 8;
@@ -245,22 +245,22 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
case 2:
/* subframe 2: ephemeris for transmitting SV */
subp->sub2.IODE = ((words[2] >> 16) & 0x00FF);
- subp->sub2.Crs = (short)( words[2] & 0x00FFFF);
+ subp->sub2.Crs = (int16_t)( words[2] & 0x00FFFF);
subp->sub2.d_Crs = pow(2.0,-5) * subp->sub2.Crs;
- subp->sub2.deltan = (short)((words[3] >> 8) & 0x00FFFF);
+ subp->sub2.deltan = (int16_t)((words[3] >> 8) & 0x00FFFF);
subp->sub2.d_deltan = pow(2.0,-43) * subp->sub2.deltan;
- subp->sub2.M0 = (int)( words[3] & 0x0000FF);
+ subp->sub2.M0 = (int32_t)( words[3] & 0x0000FF);
subp->sub2.M0 <<= 24;
subp->sub2.M0 |= ( words[4] & 0x00FFFFFF);
subp->sub2.M0 = uint2int(subp->sub2.M0, 24);
subp->sub2.d_M0 = pow(2.0,-31) * subp->sub2.M0 * GPS_PI;
- subp->sub2.Cuc = (short)((words[5] >> 8) & 0x00FFFF);
+ subp->sub2.Cuc = (int16_t)((words[5] >> 8) & 0x00FFFF);
subp->sub2.d_Cuc = pow(2.0,-29) * subp->sub2.Cuc;
subp->sub2.e = ( words[5] & 0x0000FF);
subp->sub2.e <<= 24;
subp->sub2.e |= ( words[6] & 0x00FFFFFF);
subp->sub2.d_eccentricity = pow(2.0,-33) * subp->sub2.e;
- subp->sub2.Cus = (short)((words[7] >> 8) & 0x00FFFF);
+ subp->sub2.Cus = (int16_t)((words[7] >> 8) & 0x00FFFF);
subp->sub2.d_Cus = pow(2.0,-29) * subp->sub2.Cus;
subp->sub2.sqrtA = ( words[7] & 0x0000FF);
subp->sub2.sqrtA <<= 24;
@@ -292,23 +292,23 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
/* subframe 3: ephemeris for transmitting SV */
subp->sub3.Cic = ((words[2] >> 8) & 0x00FFFF);
subp->sub3.d_Cic = pow(2.0, -29) * subp->sub3.Cic;
- subp->sub3.Omega0 = (int)(words[2] & 0x0000FF);
+ subp->sub3.Omega0 = (int32_t)(words[2] & 0x0000FF);
subp->sub3.Omega0 <<= 24;
subp->sub3.Omega0 |= ( words[3] & 0x00FFFFFF);
subp->sub3.d_Omega0 = pow(2.0, -31) * subp->sub3.Omega0;
- subp->sub3.Cis = (short)((words[4] >> 8) & 0x00FFFF);
+ subp->sub3.Cis = (int16_t)((words[4] >> 8) & 0x00FFFF);
subp->sub3.d_Cis = pow(2.0, -29) * subp->sub3.Cis;
- subp->sub3.i0 = (int)(words[4] & 0x0000FF);
+ subp->sub3.i0 = (int32_t)(words[4] & 0x0000FF);
subp->sub3.i0 <<= 24;
subp->sub3.i0 |= ( words[5] & 0x00FFFFFF);
subp->sub3.d_i0 = pow(2.0, -31) * subp->sub3.i0;
- subp->sub3.Crc = (short)((words[6] >> 8) & 0x00FFFF);
+ subp->sub3.Crc = (int16_t)((words[6] >> 8) & 0x00FFFF);
subp->sub3.d_Crc = pow(2.0, -5) * subp->sub3.Crc;
- subp->sub3.omega = (int)(words[6] & 0x0000FF);
+ subp->sub3.omega = (int32_t)(words[6] & 0x0000FF);
subp->sub3.omega <<= 24;
subp->sub3.omega |= ( words[7] & 0x00FFFFFF);
subp->sub3.d_omega = pow(2.0, -31) * subp->sub3.omega;
- subp->sub3.Omegad = (int)(words[8] & 0x00FFFFFF);
+ subp->sub3.Omegad = (int32_t)(words[8] & 0x00FFFFFF);
subp->sub3.Omegad = uint2int(subp->sub3.Omegad, 24);
subp->sub3.d_Omegad = pow(2.0, -43) * subp->sub3.Omegad;
subp->sub3.IODE = ((words[9] >> 16) & 0x0000FF);
@@ -662,28 +662,28 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
sv = -1;
/* current leap seconds */
- subp->sub4_18.alpha0 = (char)((words[2] >> 16) & 0x0000FF);
+ subp->sub4_18.alpha0 = (int8_t)((words[2] >> 16) & 0x0000FF);
subp->sub4_18.d_alpha0 = pow(2.0, -30) * (int)subp->sub4_18.alpha0;
- subp->sub4_18.alpha1 = (char)((words[2] >> 8) & 0x0000FF);
+ subp->sub4_18.alpha1 = (int8_t)((words[2] >> 8) & 0x0000FF);
subp->sub4_18.d_alpha1 = pow(2.0, -27) * (int)subp->sub4_18.alpha2;
- subp->sub4_18.alpha2 = (char)((words[3] >> 16) & 0x0000FF);
+ subp->sub4_18.alpha2 = (int8_t)((words[3] >> 16) & 0x0000FF);
subp->sub4_18.d_alpha2 = pow(2.0, -24) * (int)subp->sub4_18.alpha2;
- subp->sub4_18.alpha3 = (char)((words[3] >> 8) & 0x0000FF);
+ subp->sub4_18.alpha3 = (int8_t)((words[3] >> 8) & 0x0000FF);
subp->sub4_18.d_alpha3 = pow(2.0, -24) * (int)subp->sub4_18.alpha3;
- subp->sub4_18.beta0 = (char)((words[3] >> 0) & 0x0000FF);
+ subp->sub4_18.beta0 = (int8_t)((words[3] >> 0) & 0x0000FF);
subp->sub4_18.d_beta0 = pow(2.0, 11) * (int)subp->sub4_18.beta0;
- subp->sub4_18.beta1 = (char)((words[4] >> 16) & 0x0000FF);
+ subp->sub4_18.beta1 = (int8_t)((words[4] >> 16) & 0x0000FF);
subp->sub4_18.d_beta1 = pow(2.0, 14) * (int)subp->sub4_18.beta2;
- subp->sub4_18.beta2 = (char)((words[4] >> 8) & 0x0000FF);
+ subp->sub4_18.beta2 = (int8_t)((words[4] >> 8) & 0x0000FF);
subp->sub4_18.d_beta2 = pow(2.0, 16) * (int)subp->sub4_18.beta2;
- subp->sub4_18.beta3 = (char)((words[4] >> 0) & 0x0000FF);
+ subp->sub4_18.beta3 = (int8_t)((words[4] >> 0) & 0x0000FF);
subp->sub4_18.d_beta3 = pow(2.0, 16) * (int)subp->sub4_18.beta3;
- subp->sub4_18.A1 = (int)((words[5] >> 0) & 0xFFFFFF);
+ subp->sub4_18.A1 = (int32_t)((words[5] >> 0) & 0xFFFFFF);
subp->sub4_18.A1 = uint2int(subp->sub4_18.A1, 24);
subp->sub4_18.d_A1 = pow(2.0,-50) * subp->sub4_18.A1;
- subp->sub4_18.A0 = (int)((words[6] >> 0) & 0xFFFFFF);
+ subp->sub4_18.A0 = (int32_t)((words[6] >> 0) & 0xFFFFFF);
subp->sub4_18.A0 <<= 8;
subp->sub4_18.A0 |= ((words[7] >> 16) & 0x00FFFF);
subp->sub4_18.d_A0 = pow(2.0,-30) * subp->sub4_18.A0;
@@ -693,13 +693,13 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
subp->sub4_18.tot = ((words[7] >> 8) & 0x0000FF);
subp->sub4_18.d_tot = pow(2.0,12) * subp->sub4_18.d_tot;
subp->sub4_18.WNt = ((words[7] >> 0) & 0x0000FF);
- subp->sub4_18.leap = (char)((words[8] >> 16) & 0x0000FF);
+ subp->sub4_18.leap = (int8_t)((words[8] >> 16) & 0x0000FF);
subp->sub4_18.WNlsf = ((words[8] >> 8) & 0x0000FF);
/* DN (Day Number of LSF) */
subp->sub4_18.DN = (words[8] & 0x0000FF);
/* leap second future */
- subp->sub4_18.lsf = (char)((words[9] >> 16) & 0x0000FF);
+ subp->sub4_18.lsf = (int8_t)((words[9] >> 16) & 0x0000FF);
gpsd_report(LOG_INF,
"50B: SF:4-18 leap-seconds:%d lsf:%d WNlsf:%u "
"DN:%d\n",