diff options
author | Gary E. Miller <gem@rellim.com> | 2019-01-15 14:50:00 -0800 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2019-01-15 14:50:00 -0800 |
commit | 6d6fb45908d4b95bc8de92d2b2f392627f32b9ff (patch) | |
tree | 5be754958eef7e66b1f3676a0177726e3797a0f4 /driver_sirf.c | |
parent | 3a95922bf764df8e1578859808a64075bc44333e (diff) | |
download | gpsd-6d6fb45908d4b95bc8de92d2b2f392627f32b9ff.tar.gz |
driver_sirf: Fix QZSS PRN decode.
Diffstat (limited to 'driver_sirf.c')
-rw-r--r-- | driver_sirf.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/driver_sirf.c b/driver_sirf.c index 74c91152..a3cbe2cd 100644 --- a/driver_sirf.c +++ b/driver_sirf.c @@ -854,8 +854,21 @@ static gps_mask_t sirf_msg_67_16(struct gps_device_t *session, * 173 to 182: QZSS IMES * 183 to 187: QZSS SAIF * 193 to 202: QZSS */ - gnssId = 0; - PRN = svId; + if ((173 <= svId) && (182 >= svId)){ + /* IMES */ + gnssId = 4; + PRN = svId; + svId -= 172; + } else if ((193 <= svId) && (202 >= svId)){ + /* QZSS */ + gnssId = 5; + PRN = svId; + svId -= 192; + } else { + /* GPS, or?? */ + gnssId = 0; + PRN = svId; + } break; case 1: /* SBAS, 120-158 maps to 120-158 */ @@ -1981,7 +1994,8 @@ gps_mask_t sirf_parse(struct gps_device_t * session, unsigned char *buf, case 0x47: /* Hardware Config MID 71 */ gpsd_log(&session->context->errout, LOG_PROG, - "SiRF IV: unused Hardware Config 0x47\n"); + "SiRF IV: unused Hardware Config 0x47, len %zd\n", + len); return 0; case 0x51: /* MID_QUERY_RESP MID 81 */ |