summaryrefslogtreecommitdiff
path: root/driver_garmin.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_garmin.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_garmin.c')
-rw-r--r--driver_garmin.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/driver_garmin.c b/driver_garmin.c
index abbbcc44..02961d23 100644
--- a/driver_garmin.c
+++ b/driver_garmin.c
@@ -294,6 +294,10 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id
gpsd_report(LOG_IO, "PrintSERPacket(, %#02x, %#02x, )\n", pkt_id, pkt_len);
+ session->cycle_state = CYCLE_END_RELIABLE;
+ if (pkt_id == GARMIN_PKTID_PVT_DATA)
+ session->cycle_state |= (CYCLE_START | CYCLE_END);
+
switch( pkt_id ) {
case ACK:
gpsd_report(LOG_PROG, "ACK\n");
@@ -468,7 +472,6 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id
, pvt->leap_sec
, pvt->grmn_days);
- session->cycle_state |= CYCLE_START;
mask |= TIME_SET | LATLON_SET | ALTITUDE_SET | STATUS_SET | MODE_SET | SPEED_SET | TRACK_SET | CLIMB_SET | HERR_SET | VERR_SET | PERR_SET;
break;
case GARMIN_PKTID_RMD_DATA: