summaryrefslogtreecommitdiff
path: root/driver_zodiac.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2009-09-09 07:29:06 +0000
committerEric S. Raymond <esr@thyrsus.com>2009-09-09 07:29:06 +0000
commit5744aee5cb326e473db12a1b104b328bd247d23c (patch)
tree3e3d5919ae755a0bd398066c0d7e798255c2e7ec /driver_zodiac.c
parent9e679fb1711620fe95cb39e6f1f029e39b4bcea6 (diff)
downloadgpsd-5744aee5cb326e473db12a1b104b328bd247d23c.tar.gz
Reliable cycle-start indication for almost all drivers.
Some regression tests needed to be rebuilt as a result. One new regression test, for iTalk binary.
Diffstat (limited to 'driver_zodiac.c')
-rw-r--r--driver_zodiac.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/driver_zodiac.c b/driver_zodiac.c
index 6f6212bb..bf93baca 100644
--- a/driver_zodiac.c
+++ b/driver_zodiac.c
@@ -407,15 +407,19 @@ static gps_mask_t zodiac_analyze(struct gps_device_t *session)
(void)snprintf(session->gpsdata.tag,sizeof(session->gpsdata.tag),"%u",id);
- /* normal cycle for these devices is 1001 1002 */
+ /*
+ * Normal cycle for these devices is 1001 1002.
+ * We cound 1001 as end of cycle because 1002 doesn't
+ * carry fix information.
+ */
session->cycle_state = CYCLE_END_RELIABLE;
+ if (id == 1000)
+ session->cycle_state |= (CYCLE_START | CYCLE_END);
switch (id) {
case 1000:
- session->cycle_state = CYCLE_END;
return handle1000(session);
case 1002:
- /* actual cycle end, but conveys no fix information */
return handle1002(session);
case 1003:
return handle1003(session);