diff options
author | Gary E. Miller <gem@rellim.com> | 2019-01-24 16:07:04 -0800 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2019-01-24 16:07:04 -0800 |
commit | aa40e12a01de0d558e85254f5467fd546185ff3c (patch) | |
tree | 11398dfebb9bd7de76707016f0453ab5baf2911b /driver_sirf.c | |
parent | 77b3d4f09d7f51d6a22868a87ce5774fea5fccb4 (diff) | |
download | gpsd-aa40e12a01de0d558e85254f5467fd546185ff3c.tar.gz |
driver_sirf: Reformat bin<->nmea code. Note it is broken.
Diffstat (limited to 'driver_sirf.c')
-rw-r--r-- | driver_sirf.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/driver_sirf.c b/driver_sirf.c index 7d343bed..1c9f65e9 100644 --- a/driver_sirf.c +++ b/driver_sirf.c @@ -353,8 +353,9 @@ static bool sirfbin_speed(struct gps_device_t *session, speed_t speed, char pari return (sirf_write(session, msg)); } -static bool sirf_to_nmea(struct gps_device_t *session, speed_t speed) /* switch from binary to NMEA at specified baud */ +/* FIXME: does not seem to work... */ +static bool sirf_to_nmea(struct gps_device_t *session, speed_t speed) { static unsigned char msg[] = { 0xa0, 0xa2, 0x00, 0x18, 0x81, 0x02, @@ -375,14 +376,15 @@ static bool sirf_to_nmea(struct gps_device_t *session, speed_t speed) if (speed >= 0xffff) { gpsd_log(&session->context->errout, LOG_ERROR, - "SiRF: can't switch from SiRF to NMEA because current speed %u is big.", - (unsigned int)speed); + "SiRF: can't switch from SiRF to NMEA because " + " current speed %u is big.", + (unsigned int)speed); return false; } msg[26] = (unsigned char)HI(speed); msg[27] = (unsigned char)LO(speed); - return (sirf_write(session, msg)); + return sirf_write(session, msg); } static void sirfbin_mode(struct gps_device_t *session, int mode) @@ -411,6 +413,8 @@ static void sirfbin_mode(struct gps_device_t *session, int mode) session->gpsdata.dev.baudrate, 9 - session->gpsdata.dev.stopbits, session->gpsdata.dev.stopbits, parity); + /* reset binary init steps */ + session->driver.sirf.cfg_stage = 0; } session->back_to_nmea = false; } |