summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bits.h26
-rw-r--r--bits_test.c115
-rw-r--r--drivers.c6
-rw-r--r--rtcm3.c2
-rw-r--r--sirf.c84
-rw-r--r--sirfmon.c92
-rw-r--r--tsip.c148
7 files changed, 242 insertions, 231 deletions
diff --git a/bits.h b/bits.h
index c38803ac..eb22a6ce 100644
--- a/bits.h
+++ b/bits.h
@@ -43,8 +43,7 @@ union long_double {
#define getub(buf, off) ((u_int8_t)buf[(off)-(GET_ORIGIN)])
#define putbyte(buf,off,b) do {buf[(off)-(PUT_ORIGIN)] = (unsigned char)(b);} while (0)
-#ifdef LITTLE_ENDIAN_PROTOCOL
-
+/* little-endian access */
#define getlesw(buf, off) ((int16_t)(((u_int16_t)getub((buf), (off)+1) << 8) | (u_int16_t)getub((buf), (off))))
#define getleuw(buf, off) ((u_int16_t)(((u_int16_t)getub((buf), (off)+1) << 8) | (u_int16_t)getub((buf), (off))))
#define getlesl(buf, off) ((int32_t)(((u_int16_t)getleuw((buf), (off)+2) << 16) | (u_int16_t)getleuw((buf), (off))))
@@ -57,23 +56,20 @@ union long_double {
#define getlef(buf, off) (i_f.i = getlesl(buf, off), i_f.f)
#define getled(buf, off) (l_d.l = getlesL(buf, off), l_d.d)
-#else
/* SiRF and most other GPS protocols use big-endian (network byte order) */
-#define getsw(buf, off) ((int16_t)(((u_int16_t)getub(buf, (off)) << 8) | (u_int16_t)getub(buf, (off)+1)))
-#define getuw(buf, off) ((u_int16_t)(((u_int16_t)getub(buf, (off)) << 8) | (u_int16_t)getub(buf, (off)+1)))
-#define getsl(buf, off) ((int32_t)(((u_int16_t)getuw(buf, (off)) << 16) | getuw(buf, (off)+2)))
-#define getul(buf, off) ((u_int32_t)(((u_int16_t)getuw(buf, (off)) << 16) | getuw(buf, (off)+2)))
-#define getsL(buf, off) ((int64_t)(((u_int64_t)getul(buf, (off)) << 32) | getul(buf, (off)+4)))
-#define getuL(buf, off) ((u_int64_t)(((u_int64_t)getul(buf, (off)) << 32) | getul(buf, (off)+4)))
-
-#define putword(buf,off,w) do {putbyte(buf, (off) ,(w) >> 8); putbyte(buf, (off)+1, (w));} while (0)
-#define putlong(buf,off,l) do {putword(buf, (off) ,(l) >> 16); putword(buf, (off)+2, (l));} while (0)
+#define getbesw(buf, off) ((int16_t)(((u_int16_t)getub(buf, (off)) << 8) | (u_int16_t)getub(buf, (off)+1)))
+#define getbeuw(buf, off) ((u_int16_t)(((u_int16_t)getub(buf, (off)) << 8) | (u_int16_t)getub(buf, (off)+1)))
+#define getbesl(buf, off) ((int32_t)(((u_int16_t)getbeuw(buf, (off)) << 16) | getbeuw(buf, (off)+2)))
+#define getbeul(buf, off) ((u_int32_t)(((u_int16_t)getbeuw(buf, (off)) << 16) | getbeuw(buf, (off)+2)))
+#define getbesL(buf, off) ((int64_t)(((u_int64_t)getbeul(buf, (off)) << 32) | getbeul(buf, (off)+4)))
+#define getbeuL(buf, off) ((u_int64_t)(((u_int64_t)getbeul(buf, (off)) << 32) | getbeul(buf, (off)+4)))
-#define getf(buf, off) (i_f.i = getsl(buf, off), i_f.f)
-#define getd(buf, off) (l_d.l = getsL(buf, off), l_d.d)
-#endif
+#define putbeword(buf,off,w) do {putbyte(buf, (off) ,(w) >> 8); putbyte(buf, (off)+1, (w));} while (0)
+#define putbelong(buf,off,l) do {putbeword(buf, (off) ,(l) >> 16); putbeword(buf, (off)+2, (l));} while (0)
+#define getbef(buf, off) (i_f.i = getbesl(buf, off), i_f.f)
+#define getbed(buf, off) (l_d.l = getbesL(buf, off), l_d.d)
/* Zodiac protocol description uses 1-origin indexing by little-endian word */
diff --git a/bits_test.c b/bits_test.c
index f9e4056e..b6beb55f 100644
--- a/bits_test.c
+++ b/bits_test.c
@@ -23,7 +23,7 @@ static unsigned long long uL1,uL2;
static float f1;
static double d1;
-static void dumpall(void)
+static void bedumpall(void)
{
(void)printf("getsb: %016llx %016llx %016llx %016llx\n",
(ubig)sb1, (ubig)sb2,
@@ -31,26 +31,56 @@ static void dumpall(void)
(void)printf("getub: %016llx %016llx %016llx %016llx\n",
(ubig)ub1, (ubig)ub2,
(ubig)getub(buf, 0), (ubig)getub(buf, 8));
- (void)printf("getsw: %016llx %016llx %016llx %016llx\n",
+ (void)printf("getbesw: %016llx %016llx %016llx %016llx\n",
(ubig)sw1, (ubig)sw2,
- (ubig)getsw(buf, 0), (ubig)getsw(buf, 8));
- (void)printf("getuw: %016llx %016llx %016llx %016llx\n",
+ (ubig)getbesw(buf, 0), (ubig)getbesw(buf, 8));
+ (void)printf("getbeuw: %016llx %016llx %016llx %016llx\n",
(ubig)uw1, (ubig)uw2,
- (ubig)getuw(buf, 0), (ubig)getuw(buf, 8));
- (void)printf("getsl: %016llx %016llx %016llx %016llx\n",
+ (ubig)getbeuw(buf, 0), (ubig)getbeuw(buf, 8));
+ (void)printf("getbesl: %016llx %016llx %016llx %016llx\n",
(ubig)sl1, (ubig)sl2,
- (ubig)getsl(buf, 0), (ubig)getsl(buf, 8));
- (void)printf("getul: %016llx %016llx %016llx %016llx\n",
+ (ubig)getbesl(buf, 0), (ubig)getbesl(buf, 8));
+ (void)printf("getbeul: %016llx %016llx %016llx %016llx\n",
(ubig)ul1, (ubig)ul2,
- (ubig)getul(buf, 0), (ubig)getul(buf, 8));
- (void)printf("getsL: %016llx %016llx %016llx %016llx\n",
+ (ubig)getbeul(buf, 0), (ubig)getbeul(buf, 8));
+ (void)printf("getbesL: %016llx %016llx %016llx %016llx\n",
(ubig)sL1, (ubig)sL2,
- (ubig)getsL(buf, 0), (ubig)getsL(buf, 8));
- (void)printf("getuL: %016llx %016llx %016llx %016llx\n",
+ (ubig)getbesL(buf, 0), (ubig)getbesL(buf, 8));
+ (void)printf("getbeuL: %016llx %016llx %016llx %016llx\n",
(ubig)uL1, (ubig)uL2,
- (ubig)getuL(buf, 0), (ubig)getuL(buf, 8));
- (void)printf("getf: %f %f\n", f1, getf(buf, 24));
- (void)printf("getd: %.16f %.16f\n", d1, getd(buf, 16));
+ (ubig)getbeuL(buf, 0), (ubig)getbeuL(buf, 8));
+ (void)printf("getbef: %f %f\n", f1, getbef(buf, 24));
+ (void)printf("getbed: %.16f %.16f\n", d1, getbed(buf, 16));
+}
+
+static void ledumpall(void)
+{
+ (void)printf("getsb: %016llx %016llx %016llx %016llx\n",
+ (ubig)sb1, (ubig)sb2,
+ (ubig)getsb(buf, 0), (ubig)getsb(buf, 8));
+ (void)printf("getub: %016llx %016llx %016llx %016llx\n",
+ (ubig)ub1, (ubig)ub2,
+ (ubig)getub(buf, 0), (ubig)getub(buf, 8));
+ (void)printf("getlesw: %016llx %016llx %016llx %016llx\n",
+ (ubig)sw1, (ubig)sw2,
+ (ubig)getlesw(buf, 0), (ubig)getlesw(buf, 8));
+ (void)printf("getleuw: %016llx %016llx %016llx %016llx\n",
+ (ubig)uw1, (ubig)uw2,
+ (ubig)getleuw(buf, 0), (ubig)getleuw(buf, 8));
+ (void)printf("getlesl: %016llx %016llx %016llx %016llx\n",
+ (ubig)sl1, (ubig)sl2,
+ (ubig)getlesl(buf, 0), (ubig)getlesl(buf, 8));
+ (void)printf("getleul: %016llx %016llx %016llx %016llx\n",
+ (ubig)ul1, (ubig)ul2,
+ (ubig)getleul(buf, 0), (ubig)getleul(buf, 8));
+ (void)printf("getlesL: %016llx %016llx %016llx %016llx\n",
+ (ubig)sL1, (ubig)sL2,
+ (ubig)getlesL(buf, 0), (ubig)getlesL(buf, 8));
+ (void)printf("getleuL: %016llx %016llx %016llx %016llx\n",
+ (ubig)uL1, (ubig)uL2,
+ (ubig)getleuL(buf, 0), (ubig)getleuL(buf, 8));
+ (void)printf("getlef: %f %f\n", f1, getlef(buf, 24));
+ (void)printf("getled: %.16f %.16f\n", d1, getled(buf, 16));
}
/*@ -duplicatequals +ignorequals @*/
@@ -63,47 +93,32 @@ int main(void)
/* big-endian test */
printf("Big-endian\n");
-#include "bits.h"
sb1 = getsb(buf, 0);
sb2 = getsb(buf, 8);
ub1 = getub(buf, 0);
ub2 = getub(buf, 8);
- sw1 = getsw(buf, 0);
- sw2 = getsw(buf, 8);
- uw1 = getuw(buf, 0);
- uw2 = getuw(buf, 8);
- sl1 = getsl(buf, 0);
- sl2 = getsl(buf, 8);
- ul1 = getul(buf, 0);
- ul2 = getul(buf, 8);
- sL1 = getsL(buf, 0);
- sL2 = getsL(buf, 8);
- uL1 = getuL(buf, 0);
- uL2 = getuL(buf, 8);
- f1 = getf(buf, 24);
- d1 = getd(buf, 16);
-
- dumpall();
-
-#undef getub
-#undef getsb
-#undef getuw
-#undef getsw
-#undef getul
-#undef getsl
-#undef getuL
-#undef getsL
-#undef putword
-#undef putlong
+ sw1 = getbesw(buf, 0);
+ sw2 = getbesw(buf, 8);
+ uw1 = getbeuw(buf, 0);
+ uw2 = getbeuw(buf, 8);
+ sl1 = getbesl(buf, 0);
+ sl2 = getbesl(buf, 8);
+ ul1 = getbeul(buf, 0);
+ ul2 = getbeul(buf, 8);
+ sL1 = getbesL(buf, 0);
+ sL2 = getbesL(buf, 8);
+ uL1 = getbeuL(buf, 0);
+ uL2 = getbeuL(buf, 8);
+ f1 = getbef(buf, 24);
+ d1 = getbed(buf, 16);
+ bedumpall();
/* little-endian test */
-#define LITTLE_ENDIAN_PROTOCOL
printf("Little-endian\n");
-#include "bits.h"
- sb1 = getlesb(buf, 0);
- sb2 = getlesb(buf, 8);
- ub1 = getleub(buf, 0);
- ub2 = getleub(buf, 8);
+ sb1 = getsb(buf, 0);
+ sb2 = getsb(buf, 8);
+ ub1 = getub(buf, 0);
+ ub2 = getub(buf, 8);
sw1 = getlesw(buf, 0);
sw2 = getlesw(buf, 8);
uw1 = getleuw(buf, 0);
@@ -118,7 +133,7 @@ int main(void)
uL2 = getleuL(buf, 8);
f1 = getlef(buf, 24);
d1 = getled(buf, 16);
- dumpall();
+ ledumpall();
exit(0);
}
diff --git a/drivers.c b/drivers.c
index ad921331..ee8f7029 100644
--- a/drivers.c
+++ b/drivers.c
@@ -12,7 +12,7 @@
#include "gpsd_config.h"
#include "gpsd.h"
-#include "bits.h" /* for getuw(), to extract big-endiamn words */
+#include "bits.h" /* for getbeuw(), to extract big-endiamn words */
extern struct gps_type_t zodiac_binary;
extern struct gps_type_t ubx_binary;
@@ -787,8 +787,8 @@ static struct gps_type_t rtcm104v2 = {
static gps_mask_t rtcm104v3_analyze(struct gps_device_t *session)
{
- uint length = getuw(session->packet.inbuffer, 1);
- uint type = getuw(session->packet.inbuffer, 3) >> 4;
+ uint length = getbeuw(session->packet.inbuffer, 1);
+ uint type = getbeuw(session->packet.inbuffer, 3) >> 4;
gpsd_report(LOG_RAW, "RTCM 3.x packet type %d length %d words: %s\n",
type, length,
diff --git a/rtcm3.c b/rtcm3.c
index be984c2b..0b4bdb91 100644
--- a/rtcm3.c
+++ b/rtcm3.c
@@ -454,7 +454,7 @@ void rtcm3_unpack(/*@out@*/struct rtcm3_t *tp, char *buf)
(void)printf("%s: type=%d length=%d, computed length %d, computed type %d\n",
gpsd_hexdump(buf, 6),
msg->type, msg->length,
- getuw(buf, 1), getuw(buf, 3) >> 4);
+ getbeuw(buf, 1), getbeuw(buf, 3) >> 4);
// FIXME: Decoding of packet content goes here
}
diff --git a/sirf.c b/sirf.c
index 4472c4f3..2a3673ea 100644
--- a/sirf.c
+++ b/sirf.c
@@ -209,17 +209,17 @@ static gps_mask_t sirf_msg_debug(unsigned char *buf, size_t len)
static gps_mask_t sirf_msg_errors(unsigned char *buf, size_t len UNUSED)
{
- switch (getuw(buf, 1)) {
+ switch (getbeuw(buf, 1)) {
case 2:
- gpsd_report(LOG_PROG, "EID 0x0a type 2: Subframe %d error on PRN %ld\n", getul(buf, 9), getul(buf, 5));
+ gpsd_report(LOG_PROG, "EID 0x0a type 2: Subframe %d error on PRN %ld\n", getbeul(buf, 9), getbeul(buf, 5));
break;
case 4107:
- gpsd_report(LOG_PROG, "EID 0x0a type 4107: neither KF nor LSQ fix.\n", getul(buf, 5));
+ gpsd_report(LOG_PROG, "EID 0x0a type 4107: neither KF nor LSQ fix.\n", getbeul(buf, 5));
break;
default:
- gpsd_report(LOG_PROG, "EID 0x0a: Error ID type %d\n", getuw(buf, 1));
+ gpsd_report(LOG_PROG, "EID 0x0a: Error ID type %d\n", getbeuw(buf, 1));
break;
}
return 0;
@@ -273,16 +273,16 @@ static gps_mask_t sirf_msg_navdata(struct gps_device_t *session, unsigned char *
//unsigned int chan = (unsigned int)getub(buf, 1);
//unsigned int svid = (unsigned int)getub(buf, 2);
- words[0] = (unsigned int)getul(buf, 3);
- words[1] = (unsigned int)getul(buf, 7);
- words[2] = (unsigned int)getul(buf, 11);
- words[3] = (unsigned int)getul(buf, 15);
- words[4] = (unsigned int)getul(buf, 19);
- words[5] = (unsigned int)getul(buf, 23);
- words[6] = (unsigned int)getul(buf, 27);
- words[7] = (unsigned int)getul(buf, 31);
- words[8] = (unsigned int)getul(buf, 35);
- words[9] = (unsigned int)getul(buf, 39);
+ words[0] = (unsigned int)getbeul(buf, 3);
+ words[1] = (unsigned int)getbeul(buf, 7);
+ words[2] = (unsigned int)getbeul(buf, 11);
+ words[3] = (unsigned int)getbeul(buf, 15);
+ words[4] = (unsigned int)getbeul(buf, 19);
+ words[5] = (unsigned int)getbeul(buf, 23);
+ words[6] = (unsigned int)getbeul(buf, 27);
+ words[7] = (unsigned int)getbeul(buf, 31);
+ words[8] = (unsigned int)getbeul(buf, 35);
+ words[9] = (unsigned int)getbeul(buf, 39);
gpsd_report(LOG_PROG, "50B 0x08\n");
gpsd_interpret_subframe(session, words);
@@ -304,7 +304,7 @@ static gps_mask_t sirf_msg_svinfo(struct gps_device_t *session, unsigned char *b
gpsd_zero_satellites(&session->gpsdata);
session->gpsdata.sentence_time
- = gpstime_to_unix(getsw(buf, 1), getul(buf, 3)*1e-2) - session->context->leap_seconds;
+ = gpstime_to_unix(getbesw(buf, 1), getbeul(buf, 3)*1e-2) - session->context->leap_seconds;
for (i = st = 0; i < SIRF_CHANNELS; i++) {
int off = 8 + 15 * i;
bool good;
@@ -325,7 +325,7 @@ static gps_mask_t sirf_msg_svinfo(struct gps_device_t *session, unsigned char *b
getub(buf, off+2)/2.0,
(getub(buf, off+1)*3)/2.0,
cn/10,
- getuw(buf, off+3),
+ getbeuw(buf, off+3),
good ? '*' : ' ');
#endif /* UNUSED */
if (good!=0)
@@ -370,8 +370,8 @@ static gps_mask_t sirf_msg_navsol(struct gps_device_t *session, unsigned char *b
if ((session->driver.sirf.driverstate & (SIRF_GE_232 | UBLOX))==0) {
/* position/velocity is bytes 1-18 */
ecef_to_wgs84fix(&session->gpsdata,
- getsl(buf, 1)*1.0, getsl(buf, 5)*1.0, getsl(buf, 9)*1.0,
- getsw(buf, 13)/8.0, getsw(buf, 15)/8.0, getsw(buf, 17)/8.0);
+ getbesl(buf, 1)*1.0, getbesl(buf, 5)*1.0, getbesl(buf, 9)*1.0,
+ getbesw(buf, 13)/8.0, getbesw(buf, 15)/8.0, getbesw(buf, 17)/8.0);
/* fix status is byte 19 */
navtype = (unsigned short)getub(buf, 19);
session->gpsdata.status = STATUS_NO_FIX;
@@ -391,7 +391,7 @@ static gps_mask_t sirf_msg_navsol(struct gps_device_t *session, unsigned char *b
/* byte 20 is HDOP, see below */
/* byte 21 is "mode 2", not clear how to interpret that */
session->gpsdata.fix.time = session->gpsdata.sentence_time =
- gpstime_to_unix(getsw(buf, 22), getul(buf, 24)*1e-2) -
+ gpstime_to_unix(getbesw(buf, 22), getbeul(buf, 24)*1e-2) -
session->context->leap_seconds;
#ifdef NTPSHM_ENABLE
if (session->gpsdata.fix.mode > MODE_NO_FIX) {
@@ -439,7 +439,7 @@ static gps_mask_t sirf_msg_geodetic(struct gps_device_t *session, unsigned char
* seem to be the case. Instead, we do our own computation
* of geoid separation now.
*/
- navtype = (unsigned short)getuw(buf, 3);
+ navtype = (unsigned short)getbeuw(buf, 3);
session->gpsdata.status = STATUS_NO_FIX;
session->gpsdata.fix.mode = MODE_NO_FIX;
if (navtype & 0x80)
@@ -465,13 +465,13 @@ static gps_mask_t sirf_msg_geodetic(struct gps_device_t *session, unsigned char
* UTC second 2 2
* 11 8
*/
- unpacked_date.tm_year = (int)getuw(buf, 11)-1900;
+ unpacked_date.tm_year = (int)getbeuw(buf, 11)-1900;
unpacked_date.tm_mon = (int)getub(buf, 13)-1;
unpacked_date.tm_mday = (int)getub(buf, 14);
unpacked_date.tm_hour = (int)getub(buf, 15);
unpacked_date.tm_min = (int)getub(buf, 16);
unpacked_date.tm_sec = 0;
- subseconds = getuw(buf, 17)*1e-3;
+ subseconds = getbeuw(buf, 17)*1e-3;
/*@ -compdef -unrecog */
session->gpsdata.fix.time = session->gpsdata.sentence_time =
(double)timegm(&unpacked_date)+subseconds;
@@ -488,16 +488,16 @@ static gps_mask_t sirf_msg_geodetic(struct gps_device_t *session, unsigned char
}
#endif /* NTPSHM_ENABLE */
/* skip 4 bytes of satellite map */
- session->gpsdata.fix.latitude = getsl(buf, 23)*1e-7;
- session->gpsdata.fix.longitude = getsl(buf, 27)*1e-7;
+ session->gpsdata.fix.latitude = getbesl(buf, 23)*1e-7;
+ session->gpsdata.fix.longitude = getbesl(buf, 27)*1e-7;
/* skip 4 bytes of altitude from ellipsoid */
mask = TIME_SET | LATLON_SET | STATUS_SET | MODE_SET;
- session->gpsdata.fix.altitude = getsl(buf, 31)*1e-2;
+ session->gpsdata.fix.altitude = getbesl(buf, 31)*1e-2;
/* skip 1 byte of map datum */
- session->gpsdata.fix.speed = getsw(buf, 36)*1e-2;
- session->gpsdata.fix.track = getsw(buf, 38)*1e-2;
+ session->gpsdata.fix.speed = getbesw(buf, 36)*1e-2;
+ session->gpsdata.fix.track = getbesw(buf, 38)*1e-2;
/* skip 2 bytes of magnetic variation */
- session->gpsdata.fix.climb = getsw(buf, 42)*1e-2;
+ session->gpsdata.fix.climb = getbesw(buf, 42)*1e-2;
/* HDOP should be available at byte 89, but in 231 it's zero. */
mask |= SPEED_SET | TRACK_SET | CLIMB_SET | CYCLE_START_SET;
session->gpsdata.sentence_length = 91;
@@ -517,7 +517,7 @@ static gps_mask_t sirf_msg_sysparam(struct gps_device_t *session, unsigned char
session->driver.sirf.nav_parameters_seen = true;
session->driver.sirf.altitude_hold_mode = getub(buf, 5);
session->driver.sirf.altitude_hold_source = getub(buf, 6);
- session->driver.sirf.altitude_source_input = getsw(buf, 7);
+ session->driver.sirf.altitude_source_input = getbesw(buf, 7);
session->driver.sirf.degraded_mode = getub(buf, 9);
session->driver.sirf.degraded_timeout = getub(buf, 10);
session->driver.sirf.dr_timeout = getub(buf, 11);
@@ -539,13 +539,13 @@ static gps_mask_t sirf_msg_ublox(struct gps_device_t *session, unsigned char *bu
/* this packet is only sent by uBlox firmware from version 1.32 */
mask = LATLON_SET | ALTITUDE_SET | SPEED_SET | TRACK_SET | CLIMB_SET |
STATUS_SET | MODE_SET | HDOP_SET | VDOP_SET | PDOP_SET;
- session->gpsdata.fix.latitude = getsl(buf, 1) * RAD_2_DEG * 1e-8;
- session->gpsdata.fix.longitude = getsl(buf, 5) * RAD_2_DEG * 1e-8;
+ session->gpsdata.fix.latitude = getbesl(buf, 1) * RAD_2_DEG * 1e-8;
+ session->gpsdata.fix.longitude = getbesl(buf, 5) * RAD_2_DEG * 1e-8;
session->gpsdata.separation = wgs84_separation(session->gpsdata.fix.latitude, session->gpsdata.fix.longitude);
- session->gpsdata.fix.altitude = getsl(buf, 9) * 1e-3 - session->gpsdata.separation;
- session->gpsdata.fix.speed = getsl(buf, 13) * 1e-3;
- session->gpsdata.fix.climb = getsl(buf, 17) * 1e-3;
- session->gpsdata.fix.track = getsl(buf, 21) * RAD_2_DEG * 1e-8;
+ session->gpsdata.fix.altitude = getbesl(buf, 9) * 1e-3 - session->gpsdata.separation;
+ session->gpsdata.fix.speed = getbesl(buf, 13) * 1e-3;
+ session->gpsdata.fix.climb = getbesl(buf, 17) * 1e-3;
+ session->gpsdata.fix.track = getbesl(buf, 21) * RAD_2_DEG * 1e-8;
navtype = (unsigned short)getub(buf, 25);
session->gpsdata.status = STATUS_NO_FIX;
@@ -565,13 +565,13 @@ static gps_mask_t sirf_msg_ublox(struct gps_device_t *session, unsigned char *bu
struct tm unpacked_date;
double subseconds;
mask |= TIME_SET;
- unpacked_date.tm_year = (int)getuw(buf, 26) - 1900;
+ unpacked_date.tm_year = (int)getbeuw(buf, 26) - 1900;
unpacked_date.tm_mon = (int)getub(buf, 28) - 1;
unpacked_date.tm_mday = (int)getub(buf, 29);
unpacked_date.tm_hour = (int)getub(buf, 30);
unpacked_date.tm_min = (int)getub(buf, 31);
unpacked_date.tm_sec = 0;
- subseconds = ((unsigned short)getuw(buf, 32))*1e-3;
+ subseconds = ((unsigned short)getbeuw(buf, 32))*1e-3;
/*@ -compdef */
session->gpsdata.fix.time = session->gpsdata.sentence_time =
(double)mkgmtime(&unpacked_date)+subseconds;
@@ -611,12 +611,12 @@ static gps_mask_t sirf_msg_ppstime(struct gps_device_t *session, unsigned char *
unpacked_date.tm_sec = (int)getub(buf, 3);
unpacked_date.tm_mday = (int)getub(buf, 4);
unpacked_date.tm_mon = (int)getub(buf, 5) - 1;
- unpacked_date.tm_year = (int)getuw(buf, 6) - 1900;
+ unpacked_date.tm_year = (int)getbeuw(buf, 6) - 1900;
/*@ -compdef */
session->gpsdata.fix.time = session->gpsdata.sentence_time =
(double)mkgmtime(&unpacked_date);
/*@ +compdef */
- session->context->leap_seconds = (int)getuw(buf, 8);
+ session->context->leap_seconds = (int)getbeuw(buf, 8);
session->context->valid |= LEAP_SECOND_VALID;
#ifdef NTPSHM_ENABLE
if ((session->driver.sirf.time_seen & TIME_SEEN_UTC_2) == 0)
@@ -678,8 +678,8 @@ gps_mask_t sirf_parse(struct gps_device_t *session, unsigned char *buf, size_t l
case 0x09: /* CPU Throughput */
gpsd_report(LOG_PROG,
"THR 0x09: SegStatMax=%.3f, SegStatLat=%3.f, AveTrkTime=%.3f, Last MS=%3.f\n",
- (float)getuw(buf, 1)/186, (float)getuw(buf, 3)/186,
- (float)getuw(buf, 5)/186, getuw(buf, 7));
+ (float)getbeuw(buf, 1)/186, (float)getbeuw(buf, 3)/186,
+ (float)getbeuw(buf, 5)/186, getbeuw(buf, 7));
return 0;
case 0x0a: /* Error ID Data */
@@ -916,7 +916,7 @@ static void sirfbin_revert(struct gps_device_t *session)
0x00, 0x00, 0xb0, 0xb3};
/*@ -charint -shiftimplementation @*/
putbyte(moderevert, 7, session->driver.sirf.degraded_mode);
- putword(moderevert, 10, session->driver.sirf.altitude_source_input);
+ putbeword(moderevert, 10, session->driver.sirf.altitude_source_input);
putbyte(moderevert, 12, session->driver.sirf.altitude_hold_mode);
putbyte(moderevert, 13, session->driver.sirf.altitude_hold_source);
putbyte(moderevert, 15, session->driver.sirf.degraded_timeout);
diff --git a/sirfmon.c b/sirfmon.c
index 351f1ce1..010db00b 100644
--- a/sirfmon.c
+++ b/sirfmon.c
@@ -245,13 +245,13 @@ static void decode_sirf(unsigned char buf[], int len)
{
case 0x02: /* Measured Navigation Data */
(void)wmove(mid2win, 1,6); /* ECEF position */
- (void)wprintw(mid2win, "%8d %8d %8d",getsl(buf, 1),getsl(buf, 5),getsl(buf, 9));
+ (void)wprintw(mid2win, "%8d %8d %8d",getbesl(buf, 1),getbesl(buf, 5),getbesl(buf, 9));
(void)wmove(mid2win, 2,6); /* ECEF velocity */
(void)wprintw(mid2win, "%8.1f %8.1f %8.1f",
- (double)getsw(buf, 13)/8,(double)getsw(buf, 15)/8,(double)getsw(buf, 17)/8);
- decode_ecef((double)getsl(buf, 1),(double)getsl(buf, 5),(double)getsl(buf, 9),
- (double)getsw(buf, 13)/8,(double)getsw(buf, 15)/8,(double)getsw(buf, 17)/8);
- decode_time((int)getuw(buf, 22),getsl(buf, 24));
+ (double)getbesw(buf, 13)/8,(double)getbesw(buf, 15)/8,(double)getbesw(buf, 17)/8);
+ decode_ecef((double)getbesl(buf, 1),(double)getbesl(buf, 5),(double)getbesl(buf, 9),
+ (double)getbesw(buf, 13)/8,(double)getbesw(buf, 15)/8,(double)getbesw(buf, 17)/8);
+ decode_time((int)getbeuw(buf, 22),getbesl(buf, 24));
/* line 4 */
(void)wmove(mid2win, 4,49);
(void)wprintw(mid2win, "%4.1f",(double)getub(buf, 20)/5); /* HDOP */
@@ -272,7 +272,7 @@ static void decode_sirf(unsigned char buf[], int len)
break;
case 0x04: /* Measured Tracking Data */
- decode_time((int)getuw(buf, 1),getsl(buf, 3));
+ decode_time((int)getbeuw(buf, 1),getbesl(buf, 3));
ch = (int)getub(buf, 7);
for (i = 0; i < ch; i++) {
int sv,st;
@@ -282,10 +282,10 @@ static void decode_sirf(unsigned char buf[], int len)
sv = (int)getub(buf, off);
(void)wprintw(mid4win, " %3d",sv);
- (void)wprintw(mid4win, " %3d%3d %04x",((int)getub(buf, off+1)*3)/2,(int)getub(buf, off+2)/2,(int)getsw(buf, off+3));
+ (void)wprintw(mid4win, " %3d%3d %04x",((int)getub(buf, off+1)*3)/2,(int)getub(buf, off+2)/2,(int)getbesw(buf, off+3));
st = ' ';
- if ((int)getuw(buf, off+3) == 0xbf)
+ if ((int)getbeuw(buf, off+3) == 0xbf)
st = 'T';
for (j = 0; j < nfix; j++)
if (sv == fix[j]) {
@@ -309,7 +309,7 @@ static void decode_sirf(unsigned char buf[], int len)
#ifdef __UNUSED__
case 0x05: /* raw track data */
for (off = 1; off < len; off += 51) {
- ch = getul(buf, off);
+ ch = getbeul(buf, off);
(void)wmove(mid4win, ch+2, 19);
cn = 0;
@@ -318,9 +318,9 @@ static void decode_sirf(unsigned char buf[], int len)
printw("%5.1f",(double)cn/10);
- printw("%9d%3d%5d",getul(buf, off+8),(int)getuw(buf, off+12),(int)getuw(buf, off+14));
+ printw("%9d%3d%5d",getbeul(buf, off+8),(int)getbeuw(buf, off+12),(int)getbeuw(buf, off+14));
printw("%8.5f %10.5f",
- (double)getul(buf, off+16)/65536,(double)getul(buf, off+20)/1024);
+ (double)getbeul(buf, off+16)/65536,(double)getbeul(buf, off+20)/1024);
}
(void)wprintw(debugwin, "RTD 0x05=");
break;
@@ -332,11 +332,11 @@ static void decode_sirf(unsigned char buf[], int len)
break;
case 0x07: /* Response - Clock Status Data */
- decode_time((int)getuw(buf, 1),getsl(buf, 3));
+ decode_time((int)getbeuw(buf, 1),getbesl(buf, 3));
display(mid7win, 1, 5, "%2d", getub(buf, 7)); /* SVs */
- display(mid7win, 1, 16, "%lu", getul(buf, 8)); /* Clock drift */
- display(mid7win, 1, 29, "%lu", getul(buf, 12)); /* Clock Bias */
- display(mid7win, 2, 21, "%lu", getul(buf, 16)); /* Estimated Time */
+ display(mid7win, 1, 16, "%lu", getbeul(buf, 8)); /* Clock drift */
+ display(mid7win, 1, 29, "%lu", getbeul(buf, 12)); /* Clock Bias */
+ display(mid7win, 2, 21, "%lu", getbeul(buf, 16)); /* Estimated Time */
(void)wprintw(debugwin, "CSD 0x07=");
break;
@@ -348,10 +348,10 @@ static void decode_sirf(unsigned char buf[], int len)
break;
case 0x09: /* Throughput */
- display(mid9win, 1, 6, "%.3f",(double)getuw(buf, 1)/186); /*SegStatMax*/
- display(mid9win, 1, 18, "%.3f",(double)getuw(buf, 3)/186); /*SegStatLat*/
- display(mid9win, 1, 31, "%.3f",(double)getuw(buf, 5)/186); /*SegStatTime*/
- display(mid9win, 1, 42, "%3d",(int)getuw(buf, 7)); /* Last Millisecond */
+ display(mid9win, 1, 6, "%.3f",(double)getbeuw(buf, 1)/186); /*SegStatMax*/
+ display(mid9win, 1, 18, "%.3f",(double)getbeuw(buf, 3)/186); /*SegStatLat*/
+ display(mid9win, 1, 31, "%.3f",(double)getbeuw(buf, 5)/186); /*SegStatTime*/
+ display(mid9win, 1, 42, "%3d",(int)getbeuw(buf, 7)); /* Last Millisecond */
(void)wprintw(debugwin, "THR 0x09=");
break;
@@ -380,7 +380,7 @@ static void decode_sirf(unsigned char buf[], int len)
#define YESNO(n) (((int)getub(buf, n) != 0)?'Y':'N')
display(mid19win, 1, 20, "%d", getub(buf, 5)); /* Alt. hold mode */
display(mid19win, 2, 20, "%d", getub(buf, 6)); /* Alt. hold source*/
- display(mid19win, 3, 20, "%dm", (int)getuw(buf, 7)); /* Alt. source input */
+ display(mid19win, 3, 20, "%dm", (int)getbeuw(buf, 7)); /* Alt. source input */
display(mid19win, 4, 20, "%d", getub(buf, 9)); /* Degraded mode*/
display(mid19win, 5, 20, "%dsec", getub(buf, 10)); /* Degraded timeout*/
display(mid19win, 6, 20, "%dsec",getub(buf, 11)); /* DR timeout*/
@@ -388,22 +388,22 @@ static void decode_sirf(unsigned char buf[], int len)
display(mid19win, 8, 20, "%c", YESNO(13)); /* Static Nav.*/
display(mid19win, 9, 20, "0x%x", getub(buf, 14)); /* 3SV Least Squares*/
display(mid19win, 10,20, "0x%x", getub(buf, 19)); /* DOP Mask mode*/
- display(mid19win, 11,20, "0x%x", (int)getuw(buf, 20)); /* Nav. Elev. mask*/
+ display(mid19win, 11,20, "0x%x", (int)getbeuw(buf, 20)); /* Nav. Elev. mask*/
display(mid19win, 12,20, "0x%x", getub(buf, 22)); /* Nav. Power mask*/
display(mid19win, 13,20, "0x%x", getub(buf, 27)); /* DGPS Source*/
display(mid19win, 14,20, "0x%x", getub(buf, 28)); /* DGPS Mode*/
display(mid19win, 15,20, "%dsec",getub(buf, 29)); /* DGPS Timeout*/
display(mid19win, 1, 42, "%c", YESNO(34));/* LP Push-to-Fix */
- display(mid19win, 2, 42, "%dms", getul(buf, 35)); /* LP On Time */
- display(mid19win, 3, 42, "%d", getul(buf, 39)); /* LP Interval */
+ display(mid19win, 2, 42, "%dms", getbeul(buf, 35)); /* LP On Time */
+ display(mid19win, 3, 42, "%d", getbeul(buf, 39)); /* LP Interval */
display(mid19win, 4, 42, "%c", YESNO(43));/* User Tasks enabled */
- display(mid19win, 5, 42, "%d", getul(buf, 44)); /* User Task Interval */
+ display(mid19win, 5, 42, "%d", getbeul(buf, 44)); /* User Task Interval */
display(mid19win, 6, 42, "%c", YESNO(48));/* LP Power Cycling Enabled */
- display(mid19win, 7, 42, "%d", getul(buf, 49));/* LP Max Acq Search Time */
- display(mid19win, 8, 42, "%d", getul(buf, 53));/* LP Max Off Time */
+ display(mid19win, 7, 42, "%d", getbeul(buf, 49));/* LP Max Acq Search Time */
+ display(mid19win, 8, 42, "%d", getbeul(buf, 53));/* LP Max Off Time */
display(mid19win, 9, 42, "%c", YESNO(57));/* APM Enabled */
- display(mid19win,10, 42, "%d", (int)getuw(buf, 58));/* # of fixes */
- display(mid19win,11, 42, "%d", (int)getuw(buf, 60));/* Time Between fixes */
+ display(mid19win,10, 42, "%d", (int)getbeuw(buf, 58));/* # of fixes */
+ display(mid19win,11, 42, "%d", (int)getbeuw(buf, 60));/* Time Between fixes */
display(mid19win,12, 42, "%d", getub(buf, 62));/* H/V Error Max */
display(mid19win,13, 42, "%d", getub(buf, 63));/* Response Time Max */
display(mid19win,14, 42, "%d", getub(buf, 64));/* Time/Accu & Duty Cycle Priority */
@@ -458,7 +458,7 @@ static void decode_sirf(unsigned char buf[], int len)
for (i = j = 0; i < 12; i++) {
(void)touchwin(mid27win);
if (/*@i1@*/getub(buf, 16+3*i) != '\0') {
- (void)wprintw(mid27win, " %d=%d", getub(buf, 16+3*i), getsw(buf, 16+3*i+1));
+ (void)wprintw(mid27win, " %d=%d", getub(buf, 16+3*i), getbesw(buf, 16+3*i+1));
j++;
}
}
@@ -486,18 +486,18 @@ static void decode_sirf(unsigned char buf[], int len)
case 0x62:
attrset(A_BOLD);
move(2,40);
- printw("%9.5f %9.5f",(double)(RAD2DEG*1e8*getsl(buf, 1)),
- (double)(RAD2DEG*1e8*getsl(buf, 5)));
+ printw("%9.5f %9.5f",(double)(RAD2DEG*1e8*getbesl(buf, 1)),
+ (double)(RAD2DEG*1e8*getbesl(buf, 5)));
move(2,63);
- printw("%8d",getsl(buf, 9)/1000);
+ printw("%8d",getbesl(buf, 9)/1000);
move(3,63);
- printw("%8.1f",(double)getsl(buf, 17)/1000);
+ printw("%8.1f",(double)getbesl(buf, 17)/1000);
move(4,54);
- if (getul(buf, 13) > 50) {
- double heading = RAD2DEG*1e8*getsl(buf, 21);
+ if (getbeul(buf, 13) > 50) {
+ double heading = RAD2DEG*1e8*getbesl(buf, 21);
if (heading < 0)
heading += 360;
printw("%5.1f",heading);
@@ -505,14 +505,14 @@ static void decode_sirf(unsigned char buf[], int len)
printw(" 0.0");
move(4,63);
- printw("%8.1f",(double)getsl(buf, 13)/1000);
+ printw("%8.1f",(double)getbesl(buf, 13)/1000);
attrset(A_NORMAL);
move(5,13);
printw("%04d-%02d-%02d %02d:%02d:%02d.%02d",
- (int)getuw(buf, 26),getub(buf, 28),getub(buf, 29),getub(buf, 30),getub(buf, 31),
- (unsigned short)getuw(buf, 32)/1000,
- ((unsigned short)getuw(buf, 32)%1000)/10);
+ (int)getbeuw(buf, 26),getub(buf, 28),getub(buf, 29),getub(buf, 30),getub(buf, 31),
+ (unsigned short)getbeuw(buf, 32)/1000,
+ ((unsigned short)getbeuw(buf, 32)%1000)/10);
{
struct timeval clk,gps;
struct tm tm;
@@ -520,15 +520,15 @@ static void decode_sirf(unsigned char buf[], int len)
gettimeofday(&clk,NULL);
memset(&tm,0,sizeof(tm));
- tm.tm_sec = (unsigned short)getuw(buf, 32)/1000;
+ tm.tm_sec = (unsigned short)getbeuw(buf, 32)/1000;
tm.tm_min = (int)getub(buf, 31);
tm.tm_hour = (int)getub(buf, 30);
tm.tm_mday = (int)getub(buf, 29);
tm.tm_mon = (int)getub(buf, 28) - 1;
- tm.tm_year = (int)getuw(buf, 26) - 1900;
+ tm.tm_year = (int)getbeuw(buf, 26) - 1900;
gps.tv_sec = mkgmtime(&tm);
- gps.tv_usec = (((unsigned short)getuw(buf, 32)%1000)/10) * 10000;
+ gps.tv_usec = (((unsigned short)getbeuw(buf, 32)%1000)/10) * 10000;
move(5,2);
printw(" ");
@@ -836,14 +836,14 @@ static bool sendpkt(unsigned char *buf, size_t len, char *device)
putbyte(buf, -4, START1); /* start of packet */
putbyte(buf, -3, START2);
- putword(buf, -2, len); /* length */
+ putbeword(buf, -2, len); /* length */
csum = 0;
for (i = 0; i < len; i++)
csum += (int)buf[4 + i];
csum &= 0x7fff;
- putword(buf, len, csum); /* checksum */
+ putbeword(buf, len, csum); /* checksum */
putbyte(buf, len + 2,END1); /* end of packet */
putbyte(buf, len + 3,END2);
len += 8;
@@ -1239,7 +1239,7 @@ int main (int argc, char **argv)
break;
goodspeed:
putbyte(buf, 0, 0x86);
- putlong(buf, 1, v); /* new baud rate */
+ putbelong(buf, 1, v); /* new baud rate */
putbyte(buf, 5, 8); /* 8 data bits */
putbyte(buf, 6, stopbits); /* 1 stop bit */
putbyte(buf, 7, 0); /* no parity */
@@ -1309,7 +1309,7 @@ int main (int argc, char **argv)
putbyte(buf, 19,0x01);
putbyte(buf, 20,0x00);
putbyte(buf, 21,0x01);
- putword(buf, 22,bps);
+ putbeword(buf, 22,bps);
(void)sendpkt(buf, 24, device);
goto quit;
diff --git a/tsip.c b/tsip.c
index 987c330c..32eaa557 100644
--- a/tsip.c
+++ b/tsip.c
@@ -196,9 +196,9 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
if (len != 10)
break;
session->driver.tsip.last_41 = now; /* keep timestamp for request */
- f1 = getf(buf,0); /* gpstime */
- s1 = getsw(buf,4); /* week */
- f2 = getf(buf,6); /* leap seconds */
+ f1 = getbef(buf,0); /* gpstime */
+ s1 = getbesw(buf,4); /* week */
+ f2 = getbef(buf,6); /* leap seconds */
if (f1 >= 0.0 && f2 > 10.0) {
session->driver.tsip.gps_week = s1;
session->context->leap_seconds = (int)round(f2);
@@ -217,20 +217,20 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
case 0x42: /* Single-Precision Position Fix, XYZ ECEF */
if (len != 16)
break;
- f1 = getf(buf,0); /* X */
- f2 = getf(buf,4); /* Y */
- f3 = getf(buf,8); /* Z */
- f4 = getf(buf,12); /* time-of-fix */
+ f1 = getbef(buf,0); /* X */
+ f2 = getbef(buf,4); /* Y */
+ f3 = getbef(buf,8); /* Z */
+ f4 = getbef(buf,12); /* time-of-fix */
gpsd_report(LOG_INF, "GPS Position XYZ %f %f %f %f\n",f1,f2,f3,f4);
break;
case 0x43: /* Velocity Fix, XYZ ECEF */
if (len != 20)
break;
- f1 = getf(buf,0); /* X velocity */
- f2 = getf(buf,4); /* Y velocity */
- f3 = getf(buf,8); /* Z velocity */
- f4 = getf(buf,12); /* bias rate */
- f5 = getf(buf,16); /* time-of-fix */
+ f1 = getbef(buf,0); /* X velocity */
+ f2 = getbef(buf,4); /* Y velocity */
+ f3 = getbef(buf,8); /* Z velocity */
+ f4 = getbef(buf,12); /* bias rate */
+ f5 = getbef(buf,16); /* time-of-fix */
gpsd_report(LOG_INF, "GPS Velocity XYZ %f %f %f %f %f\n",f1,f2,f3,f4,f5);
break;
case 0x45: /* Software Version Information */
@@ -270,7 +270,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
buf2[0] = '\0';
for (i = 0; i < count; i++) {
u1 = getub(buf,5*i + 1);
- if ((f1 = getf(buf,5*i + 2)) < 0)
+ if ((f1 = getbef(buf,5*i + 2)) < 0)
f1 = 0.0;
for (j = 0; j < TSIP_CHANNELS; j++)
if (session->gpsdata.PRN[j] == (int)u1) {
@@ -290,11 +290,11 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
case 0x4a: /* Single-Precision Position LLA */
if (len != 20)
break;
- session->gpsdata.fix.latitude = getf(buf,0) * RAD_2_DEG;
- session->gpsdata.fix.longitude = getf(buf,4) * RAD_2_DEG;
- session->gpsdata.fix.altitude = getf(buf,8);
- f1 = getf(buf,12); /* clock bias */
- f2 = getf(buf,16); /* time-of-fix */
+ session->gpsdata.fix.latitude = getbef(buf,0) * RAD_2_DEG;
+ session->gpsdata.fix.longitude = getbef(buf,4) * RAD_2_DEG;
+ session->gpsdata.fix.altitude = getbef(buf,8);
+ f1 = getbef(buf,12); /* clock bias */
+ f2 = getbef(buf,16); /* time-of-fix */
if (session->driver.tsip.gps_week) {
session->gpsdata.fix.time = session->gpsdata.sentence_time =
gpstime_to_unix((int)session->driver.tsip.gps_week, f2) - session->context->leap_seconds;
@@ -353,11 +353,11 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
case 0x56: /* Velocity Fix, East-North-Up (ENU) */
if (len != 20)
break;
- f1 = getf(buf,0); /* East velocity */
- f2 = getf(buf,4); /* North velocity */
- f3 = getf(buf,8); /* Up velocity */
- f4 = getf(buf,12); /* clock bias rate */
- f5 = getf(buf,16); /* time-of-fix */
+ f1 = getbef(buf,0); /* East velocity */
+ f2 = getbef(buf,4); /* North velocity */
+ f3 = getbef(buf,8); /* Up velocity */
+ f4 = getbef(buf,12); /* clock bias rate */
+ f5 = getbef(buf,16); /* time-of-fix */
session->gpsdata.fix.climb = f3;
/*@ -evalorder @*/
session->gpsdata.fix.speed = sqrt(pow(f2,2) + pow(f1,2));
@@ -372,8 +372,8 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
break;
u1 = getub(buf,0); /* Source of information */
u2 = getub(buf,1); /* Mfg. diagnostic */
- f1 = getf(buf,2); /* gps_time */
- s1 = getsw(buf,6); /* tsip.gps_week */
+ f1 = getbef(buf,2); /* gps_time */
+ s1 = getbesw(buf,6); /* tsip.gps_week */
/*@ +charint @*/
if (getub(buf,0) == 0x01) /* good current fix? */
session->driver.tsip.gps_week = s1;
@@ -387,10 +387,10 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
case 0x5a: /* Raw Measurement Data */
if (len != 25)
break;
- f1 = getf(buf,5); /* Signal Level */
- f2 = getf(buf,9); /* Code phase */
- f3 = getf(buf,13); /* Doppler */
- d1 = getd(buf,17); /* Time of Measurement */
+ f1 = getbef(buf,5); /* Signal Level */
+ f2 = getbef(buf,9); /* Code phase */
+ f3 = getbef(buf,13); /* Doppler */
+ d1 = getbed(buf,17); /* Time of Measurement */
gpsd_report(LOG_PROG, "Raw Measurement Data %d %f %f %f %f\n",getub(buf,0),f1,f2,f3,d1);
break;
case 0x5c: /* Satellite Tracking Status */
@@ -401,10 +401,10 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
u2 = getub(buf,1); /* chan */
u3 = getub(buf,2); /* Acquisition flag */
u4 = getub(buf,3); /* Ephemeris flag */
- f1 = getf(buf,4); /* Signal level */
- f2 = getf(buf,8); /* time of Last measurement */
- d1 = getf(buf,12) * RAD_2_DEG; /* Elevation */
- d2 = getf(buf,16) * RAD_2_DEG; /* Azimuth */
+ f1 = getbef(buf,4); /* Signal level */
+ f2 = getbef(buf,8); /* time of Last measurement */
+ d1 = getbef(buf,12) * RAD_2_DEG; /* Elevation */
+ d2 = getbef(buf,16) * RAD_2_DEG; /* Azimuth */
i = (int)(u2 >> 3); /* channel number */
gpsd_report(LOG_INF, "Satellite Tracking Status: Ch %2d PRN %3d Res %d Acq %d Eph %2d SNR %4.1f LMT %.04f El %4.1f Az %5.1f\n",i,u1,u2&7,u3,u4,f1,f2,d1,d2);
if (i < TSIP_CHANNELS) {
@@ -445,10 +445,10 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
break;
}
session->gpsdata.satellites_used = count;
- session->gpsdata.pdop = getf(buf,1);
- session->gpsdata.hdop = getf(buf,5);
- session->gpsdata.vdop = getf(buf,9);
- session->gpsdata.tdop = getf(buf,13);
+ session->gpsdata.pdop = getbef(buf,1);
+ session->gpsdata.hdop = getbef(buf,5);
+ session->gpsdata.vdop = getbef(buf,9);
+ session->gpsdata.tdop = getbef(buf,13);
/*@ -evalorder @*/
session->gpsdata.gdop = sqrt(pow(session->gpsdata.pdop,2)+pow(session->gpsdata.tdop,2));
/*@ +evalorder @*/
@@ -477,7 +477,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
if (len < 20 || getub(buf,0) != 1 || getub(buf,1) != 2)
break;
/*@ -charint @*/
- s1 = getsw(buf,2); /* number of bytes */
+ s1 = getbesw(buf,2); /* number of bytes */
u1 = getub(buf,20); /* number of SVs */
break;
case 0x70: /* Filter Report */
@@ -499,21 +499,21 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
case 0x83: /* Double-Precision XYZ Position Fix and Bias Information */
if (len != 36)
break;
- d1 = getd(buf,0); /* X */
- d2 = getd(buf,8); /* Y */
- d3 = getd(buf,16); /* Z */
- d4 = getd(buf,24); /* clock bias */
- f1 = getf(buf,32); /* time-of-fix */
+ d1 = getbed(buf,0); /* X */
+ d2 = getbed(buf,8); /* Y */
+ d3 = getbed(buf,16); /* Z */
+ d4 = getbed(buf,24); /* clock bias */
+ f1 = getbef(buf,32); /* time-of-fix */
gpsd_report(LOG_INF, "GPS Position XYZ %f %f %f %f %f\n",d1,d2,d3,d4,f1);
break;
case 0x84: /* Double-Precision LLA Position Fix and Bias Information */
if (len != 36)
break;
- session->gpsdata.fix.latitude = getd(buf,0) * RAD_2_DEG;
- session->gpsdata.fix.longitude = getd(buf,8) * RAD_2_DEG;
- session->gpsdata.fix.altitude = getd(buf,16);
- d1 = getd(buf,24); /* clock bias */
- f1 = getf(buf,32); /* time-of-fix */
+ session->gpsdata.fix.latitude = getbed(buf,0) * RAD_2_DEG;
+ session->gpsdata.fix.longitude = getbed(buf,8) * RAD_2_DEG;
+ session->gpsdata.fix.altitude = getbed(buf,16);
+ d1 = getbed(buf,24); /* clock bias */
+ f1 = getbef(buf,32); /* time-of-fix */
if (session->driver.tsip.gps_week) {
session->gpsdata.fix.time = session->gpsdata.sentence_time =
gpstime_to_unix((int)session->driver.tsip.gps_week, f1) - session->context->leap_seconds;
@@ -537,12 +537,12 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
case 0x15: /* Current Datum Values */
if (len != 43)
break;
- s1 = getsw(buf,1); /* Datum Index */
- d1 = getd(buf,3); /* DX */
- d2 = getd(buf,11); /* DY */
- d3 = getd(buf,19); /* DZ */
- d4 = getd(buf,27); /* A-axis */
- d5 = getd(buf,35); /* Eccentricity Squared */
+ s1 = getbesw(buf,1); /* Datum Index */
+ d1 = getbed(buf,3); /* DX */
+ d2 = getbed(buf,11); /* DY */
+ d3 = getbed(buf,19); /* DZ */
+ d4 = getbed(buf,27); /* A-axis */
+ d5 = getbed(buf,35); /* Eccentricity Squared */
gpsd_report(LOG_INF, "Current Datum %d %f %f %f %f %f\n",s1,d1,d2,d3,d4,d5);
break;
@@ -550,18 +550,18 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
/* XXX CSK sez "why does my Lassen iQ output oversize packets?" */
if ((len != 56) && (len != 64))
break;
- s1 = getsw(buf,2); /* east velocity */
- s2 = getsw(buf,4); /* north velocity */
- s3 = getsw(buf,6); /* up velocity */
- ul1 = getul(buf,8); /* time */
- sl1 = getsl(buf,12); /* latitude */
- ul2 = getul(buf,16); /* longitude */
- sl2 = getsl(buf,20); /* altitude */
+ s1 = getbesw(buf,2); /* east velocity */
+ s2 = getbesw(buf,4); /* north velocity */
+ s3 = getbesw(buf,6); /* up velocity */
+ ul1 = getbeul(buf,8); /* time */
+ sl1 = getbesl(buf,12); /* latitude */
+ ul2 = getbeul(buf,16); /* longitude */
+ sl2 = getbesl(buf,20); /* altitude */
u1 = getub(buf,24); /* velocity scaling */
u2 = getub(buf,27); /* fix flags */
u3 = getub(buf,28); /* num svs */
u4 = getub(buf,29); /* utc offset */
- s4 = getsw(buf,30); /* tsip.gps_week */
+ s4 = getbesw(buf,30); /* tsip.gps_week */
/* PRN/IODE data follows */
gpsd_report(LOG_RAW, "LFwEI %d %d %d %u %d %u %u %x %x %u %u %d\n",s1,s2,s3,ul1,sl1,ul2,sl2,u1,u2,u3,u4,s4);
@@ -607,16 +607,16 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
/* XXX CSK sez "i don't trust this to not be oversized either." */
if (len < 29)
break;
- ul1 = getul(buf,1); /* time */
- s1 = getsw(buf,5); /* tsip.gps_week */
+ ul1 = getbeul(buf,1); /* time */
+ s1 = getbesw(buf,5); /* tsip.gps_week */
u1 = getub(buf,7); /* utc offset */
u2 = getub(buf,8); /* fix flags */
- sl1 = getsl(buf,9); /* latitude */
- ul2 = getul(buf,13); /* longitude */
- sl3 = getsl(buf,17); /* altitude */
- s2 = getsw(buf,21); /* east velocity */
- s3 = getsw(buf,23); /* north velocity */
- s4 = getsw(buf,25); /* up velocity */
+ sl1 = getbesl(buf,9); /* latitude */
+ ul2 = getbeul(buf,13); /* longitude */
+ sl3 = getbesl(buf,17); /* altitude */
+ s2 = getbesw(buf,21); /* east velocity */
+ s3 = getbesw(buf,23); /* north velocity */
+ s4 = getbesw(buf,25); /* up velocity */
gpsd_report(LOG_INF, "CSP %u %d %u %u %d %u %d %d %d %d\n",ul1,s1,u1,u2,sl1,ul2,sl3,s2,s3,s4);
session->driver.tsip.gps_week = s1;
if ((int)u1 > 10) {
@@ -666,10 +666,10 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session)
u2 = getub(buf,1); /* Operating Dimension */
u3 = getub(buf,2); /* DGPS Mode */
u4 = getub(buf,3); /* Dynamics Code */
- f1 = getf(buf,5); /* Elevation Mask */
- f2 = getf(buf,9); /* AMU Mask */
- f3 = getf(buf,13); /* DOP Mask */
- f4 = getf(buf,17); /* DOP Switch */
+ f1 = getbef(buf,5); /* Elevation Mask */
+ f2 = getbef(buf,9); /* AMU Mask */
+ f3 = getbef(buf,13); /* DOP Mask */
+ f4 = getbef(buf,17); /* DOP Switch */
u5 = getub(buf,21); /* DGPS Age Limit */
gpsd_report(LOG_INF, "Navigation Configuration %u %u %u %u %f %f %f %f %u\n",u1,u2,u3,u4,f1,f2,f3,f4,u5);
break;