diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2009-10-02 15:56:08 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2009-10-02 15:56:08 +0000 |
commit | a0023da1ea2b268830d981de3b3b5b2cf6058612 (patch) | |
tree | 6a3334a9b6f72643f6d60facd416d7dd17196b16 /driver_navcom.c | |
parent | 34574031fb921a546325b5339c917d64ae6c58f8 (diff) | |
download | gpsd-a0023da1ea2b268830d981de3b3b5b2cf6058612.tar.gz |
The new instrumentation pays off.
On NMEA devices, mode could sometimes be held across cycles when it
shouldn't have been. Fix this, simplifying how cycles are tracked in
the process. Some regression tests needed rebuilding. Code splints
clean.
Diffstat (limited to 'driver_navcom.c')
-rw-r--r-- | driver_navcom.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/driver_navcom.c b/driver_navcom.c index c662cf84..1349c276 100644 --- a/driver_navcom.c +++ b/driver_navcom.c @@ -1108,15 +1108,7 @@ gps_mask_t navcom_parse(struct gps_device_t *session, unsigned char *buf, size_t (void)snprintf(session->gpsdata.tag, sizeof(session->gpsdata.tag), "0x%02x",cmd_id); - /* - * Only one message, at start of cycle, sends actual fix data, so - * we can treat it as end-of-cycle too. For correctness, and in case - * the reports ever merge data from other sentences, we should - * find out what the actual cycle-ender is. - */ session->cycle_end_reliable = true; - if (cmd_id == 0xb1) - session->cycle_state |= CYCLE_START | CYCLE_END; switch (cmd_id) { @@ -1135,7 +1127,7 @@ gps_mask_t navcom_parse(struct gps_device_t *session, unsigned char *buf, size_t case 0xb0: return handle_0xb0(session); case 0xb1: - return handle_0xb1(session); + return handle_0xb1(session) | (CLEAR_SET | REPORT_SET); case 0xb5: return handle_0xb5(session); case 0xd3: |