summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver_rtcm2.c30
-rw-r--r--driver_rtcm3.c12
-rw-r--r--gps.h17
3 files changed, 33 insertions, 26 deletions
diff --git a/driver_rtcm2.c b/driver_rtcm2.c
index 8ade1238..bc2ceaff 100644
--- a/driver_rtcm2.c
+++ b/driver_rtcm2.c
@@ -147,9 +147,9 @@ void rtcm2_unpack(/*@out@*/struct rtcm2_t *tp, char *buf)
struct rtcm2_msg4 *m = &msg->msg_type.type4;
tp->msg_data.reference.system =
- (m->w3.dgnss==0) ? gps :
- ((m->w3.dgnss==1) ? glonass : unknown);
- tp->msg_data.reference.sense = (m->w3.dat != 0) ? global : local;
+ (m->w3.dgnss==0) ? NAVSYSTEM_GPS :
+ ((m->w3.dgnss==1) ? NAVSYSTEM_GLONASS : NAVSYSTEM_UNKNOWN);
+ tp->msg_data.reference.sense = (m->w3.dat != 0) ? SENSE_GLOBAL : SENSE_LOCAL;
if (m->w3.datum_alpha_char1){
tp->msg_data.reference.datum[n++] = (char)(m->w3.datum_alpha_char1);
}
@@ -171,7 +171,7 @@ void rtcm2_unpack(/*@out@*/struct rtcm2_t *tp, char *buf)
tp->msg_data.reference.dy = ((m->w5.dy_h << 8) | m->w6.dy_l) * DXYZ_SCALE;
tp->msg_data.reference.dz = m->w6.dz * DXYZ_SCALE;
} else
- tp->msg_data.reference.sense = invalid;
+ tp->msg_data.reference.sense = SENSE_INVALID;
}
break;
case 5:
@@ -325,7 +325,7 @@ bool rtcm2_repack(struct rtcm2_t *tp, isgps30bits_t *buf)
struct rtcm2_msg4 *m = &msg->msg_type.type4;
m->w3.dgnss = tp->msg_data.reference.system;
- m->w3.dat = (unsigned)(tp->msg_data.reference.sense == global);
+ m->w3.dat = (unsigned)(tp->msg_data.reference.sense == SENSE_GLOBAL);
/*@ -predboolothers -type @*/
if (tp->msg_data.reference.datum[0])
m->w3.datum_alpha_char1 = tp->msg_data.reference.datum[0];
@@ -348,7 +348,7 @@ bool rtcm2_repack(struct rtcm2_t *tp, isgps30bits_t *buf)
else
m->w4.datum_sub_div_char3 = 0;
/*@ +predboolothers +type @*/
- if (tp->msg_data.reference.system != unknown) {
+ if (tp->msg_data.reference.system != NAVSYSTEM_UNKNOWN) {
m->w5.dx = (uint)round(tp->msg_data.reference.dx / DXYZ_SCALE);
uval = (uint)round(tp->msg_data.reference.dy / DXYZ_SCALE);
m->w5.dy_h = uval >> 8;
@@ -495,8 +495,8 @@ void rtcm2_sager_dump(struct rtcm2_t *rtcm, /*@out@*/char buf[], size_t buflen)
if (rtcm->msg_data.reference.valid)
(void)snprintf(buf + strlen(buf), buflen - strlen(buf),
"D\t%s\t%1d\t%s\t%.1f\t%.1f\t%.1f\n",
- (rtcm->msg_data.reference.system==gps) ? "GPS"
- : ((rtcm->msg_data.reference.system==glonass) ? "GLONASS"
+ (rtcm->msg_data.reference.system==NAVSYSTEM_GPS) ? "GPS"
+ : ((rtcm->msg_data.reference.system==NAVSYSTEM_GLONASS) ? "GLONASS"
: "UNKNOWN"),
rtcm->msg_data.reference.sense,
rtcm->msg_data.reference.datum,
@@ -599,9 +599,9 @@ void rtcm2_json_dump(struct rtcm2_t *rtcm, /*@out@*/char buf[], size_t buflen)
case 4:
if (rtcm->msg_data.reference.valid)
(void)snprintf(buf + strlen(buf), buflen - strlen(buf),
- "\"system\":%s,\"sense\":%1d,\"datum\":%s,\"dx\":%.1f,\"dy\":%.1f,\"dx\":%.1f",
- (rtcm->msg_data.reference.system==gps) ? "GPS"
- : ((rtcm->msg_data.reference.system==glonass) ? "GLONASS"
+ "\"system\":%s,\"sense\":%1d,\"datum\":%s,\"dx\":%.1f,\"dy\":%.1f,\"dz\":%.1f",
+ (rtcm->msg_data.reference.system==NAVSYSTEM_GPS) ? "GPS"
+ : ((rtcm->msg_data.reference.system==NAVSYSTEM_GLONASS) ? "GLONASS"
: "UNKNOWN"),
rtcm->msg_data.reference.sense,
rtcm->msg_data.reference.datum,
@@ -745,12 +745,12 @@ int rtcm2_undump(/*@out@*/struct rtcm2_t *rtcmp, char *buf)
return -5;
else {
if (strcmp(buf2, "GPS") == 0)
- rtcmp->msg_data.reference.system = gps;
+ rtcmp->msg_data.reference.system = NAVSYSTEM_GPS;
else if (strcmp(buf2, "GLONASS") == 0)
- rtcmp->msg_data.reference.system = glonass;
+ rtcmp->msg_data.reference.system = NAVSYSTEM_GLONASS;
else
- rtcmp->msg_data.reference.system = unknown;
- rtcmp->msg_data.reference.sense = (v == 1) ? global : ((v == 0) ? local : invalid);
+ rtcmp->msg_data.reference.system = NAVSYSTEM_UNKNOWN;
+ rtcmp->msg_data.reference.sense = (v == 1) ? SENSE_GLOBAL : ((v == 0) ? SENSE_LOCAL : SENSE_INVALID);
rtcmp->msg_data.reference.valid = true;
return 0;
}
diff --git a/driver_rtcm3.c b/driver_rtcm3.c
index c30bfb5c..58049887 100644
--- a/driver_rtcm3.c
+++ b/driver_rtcm3.c
@@ -206,11 +206,11 @@ void rtcm3_unpack(/*@out@*/struct rtcm3_t *rtcm, char *buf)
rtcm->rtcmtypes.rtcm3_1005.station_id = (unsigned short)ugrab(12);
ugrab(6); /* reserved */
if ((bool)ugrab(1))
- rtcm->rtcmtypes.rtcm3_1005.system = gps;
+ rtcm->rtcmtypes.rtcm3_1005.system = NAVSYSTEM_GPS;
else if ((bool)ugrab(1))
- rtcm->rtcmtypes.rtcm3_1005.system = glonass;
+ rtcm->rtcmtypes.rtcm3_1005.system = NAVSYSTEM_GLONASS;
else if ((bool)ugrab(1))
- rtcm->rtcmtypes.rtcm3_1005.system = galileo;
+ rtcm->rtcmtypes.rtcm3_1005.system = NAVSYSTEM_GALILEO;
rtcm->rtcmtypes.rtcm3_1005.reference_station = (bool)ugrab(1);
rtcm->rtcmtypes.rtcm3_1005.ecef_x = sgrab(38) * ANTENNA_POSITION_RESOLUTION;
rtcm->rtcmtypes.rtcm3_1005.single_receiver = ugrab(1);
@@ -225,11 +225,11 @@ void rtcm3_unpack(/*@out@*/struct rtcm3_t *rtcm, char *buf)
rtcm->rtcmtypes.rtcm3_1006.station_id = (unsigned short)ugrab(12);
ugrab(6); /* reserved */
if ((bool)ugrab(1))
- rtcm->rtcmtypes.rtcm3_1006.system = gps;
+ rtcm->rtcmtypes.rtcm3_1006.system = NAVSYSTEM_GPS;
else if ((bool)ugrab(1))
- rtcm->rtcmtypes.rtcm3_1006.system = glonass;
+ rtcm->rtcmtypes.rtcm3_1006.system = NAVSYSTEM_GLONASS;
else if ((bool)ugrab(1))
- rtcm->rtcmtypes.rtcm3_1006.system = galileo;
+ rtcm->rtcmtypes.rtcm3_1006.system = NAVSYSTEM_GALILEO;
rtcm->rtcmtypes.rtcm3_1006.reference_station = (bool)ugrab(1);
rtcm->rtcmtypes.rtcm3_1006.ecef_x = sgrab(38) * ANTENNA_POSITION_RESOLUTION;
rtcm->rtcmtypes.rtcm3_1006.single_receiver = ugrab(1);
diff --git a/gps.h b/gps.h
index c04577b9..86cc6955 100644
--- a/gps.h
+++ b/gps.h
@@ -114,7 +114,11 @@ struct gps_fix_t {
typedef /*@unsignedintegraltype@*/ uint32_t isgps30bits_t;
#endif /* S_SPLINT_S */
- typedef enum {gps, glonass, galileo, unknown} navsystem;
+/* enumerated values for "system" fields */
+#define NAVSYSTEM_UNKNOWN 0
+#define NAVSYSTEM_GPS 1
+#define NAVSYSTEM_GLONASS 2
+#define NAVSYSTEM_GALILEO 3
struct rtcm2_t {
/* header contents */
@@ -143,8 +147,11 @@ struct rtcm2_t {
} ecef;
struct { /* data from type 4 messages */
bool valid; /* is message well-formed? */
- navsystem system;
- enum {local, global, invalid} sense;
+ int system;
+ int sense;
+#define SENSE_INVALID 0
+#define SENSE_LOCAL 1
+#define SENSE_GLOBAL 2
char datum[6];
double dx, dy, dz;
} reference;
@@ -282,14 +289,14 @@ struct rtcm3_t {
} rtcm3_1004;
struct {
unsigned int station_id; /* Reference Station ID */
- navsystem system; /* Which system is it? */
+ int system; /* Which system is it? */
bool reference_station; /* Reference-station indicator */
bool single_receiver; /* Single Receiver Oscillator */
double ecef_x, ecef_y, ecef_z; /* ECEF antenna location */
} rtcm3_1005;
struct {
unsigned int station_id; /* Reference Station ID */
- navsystem system; /* Which system is it? */
+ int system; /* Which system is it? */
bool reference_station; /* Reference-station indicator */
bool single_receiver; /* Single Receiver Oscillator */
double ecef_x, ecef_y, ecef_z; /* ECEF antenna location */