summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver_ubx.c24
-rw-r--r--gps.h2
2 files changed, 25 insertions, 1 deletions
diff --git a/driver_ubx.c b/driver_ubx.c
index 8ad24bbb..30ac5b62 100644
--- a/driver_ubx.c
+++ b/driver_ubx.c
@@ -814,6 +814,7 @@ static gps_mask_t ubx_rxm_rawx(struct gps_device_t *session,
uint8_t numMeas;
uint8_t recStat;
int i;
+ const char * obs_code;
if (16 > data_len) {
gpsd_log(&session->context->errout, LOG_WARN,
@@ -872,6 +873,29 @@ static gps_mask_t ubx_rxm_rawx(struct gps_device_t *session,
cno, prStdev, cpStdev, doStdev, trkStat);
session->gpsdata.raw.meas[i].gnssid = gnssId;
+ switch (gnssId) {
+ case 0: /* GPS */
+ case 1: /* SBAS */
+ case 5: /* QZSS */
+ obs_code = "L1C"; /* u-blox calles this L1C/A */
+ break;
+ case 2: /* GALILEO */
+ obs_code = "L1B"; /* u-blox calls this E1OS */
+ break;
+ case 3: /* BeiDou */
+ obs_code = "L2I"; /* u-blox calls this B1I */
+ break;
+ default: /* huh? */
+ case 4: /* IMES. really? */
+ obs_code = ""; /* u-blox calls this L1 */
+ break;
+ case 6: /* GLONASS */
+ obs_code = "L1C"; /* u-blox calls this L1OF */
+ break;
+ }
+ (void)strlcpy(session->gpsdata.raw.meas[i].obs_code, obs_code,
+ sizeof(session->gpsdata.raw.meas[i].obs_code));
+
session->gpsdata.raw.meas[i].svid = svId;
session->gpsdata.raw.meas[i].snr = cno;
session->gpsdata.raw.meas[i].satstat = trkStat;
diff --git a/gps.h b/gps.h
index 9c1873ae..16a71e96 100644
--- a/gps.h
+++ b/gps.h
@@ -1913,7 +1913,7 @@ struct rawdata_t {
/* sigid see satellite_t for decode */
unsigned char sigid;
unsigned char snr; /* SNR. 0 to 100 dB-Hz. */
- unsigned char obs_code[4]; /* 3 char RINEX observation code */
+ char obs_code[4]; /* 3 char RINEX observation code */
/* see RINEX documenetation
* GPS: L1: L1C, L1S, L1L, L1X, L1P, L1W, L1N
* L2: L2C, L2D, L2S, L2L, L2X, L2P, L2W, L2N