diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2009-09-09 07:29:06 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2009-09-09 07:29:06 +0000 |
commit | 5744aee5cb326e473db12a1b104b328bd247d23c (patch) | |
tree | 3e3d5919ae755a0bd398066c0d7e798255c2e7ec /driver_garmin.c | |
parent | 9e679fb1711620fe95cb39e6f1f029e39b4bcea6 (diff) | |
download | gpsd-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.c | 5 |
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: |