summaryrefslogtreecommitdiff
path: root/driver_navcom.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2009-10-02 15:56:08 +0000
committerEric S. Raymond <esr@thyrsus.com>2009-10-02 15:56:08 +0000
commita0023da1ea2b268830d981de3b3b5b2cf6058612 (patch)
tree6a3334a9b6f72643f6d60facd416d7dd17196b16 /driver_navcom.c
parent34574031fb921a546325b5339c917d64ae6c58f8 (diff)
downloadgpsd-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.c10
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: