summaryrefslogtreecommitdiff
path: root/driver_zodiac.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2011-01-21 05:02:22 -0500
committerEric S. Raymond <esr@thyrsus.com>2011-01-21 05:02:22 -0500
commita8fed05fc3760e05d809f3c612d7143261876f6b (patch)
treee492708e2bd161fd1201df61436a444fa9a92914 /driver_zodiac.c
parent45ec8b87531c5c967ab94dd531abe417dc912bf2 (diff)
downloadgpsd-a8fed05fc3760e05d809f3c612d7143261876f6b.tar.gz
Add some suitable warning comments.
Diffstat (limited to 'driver_zodiac.c')
-rw-r--r--driver_zodiac.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/driver_zodiac.c b/driver_zodiac.c
index 7e61db17..7d54bf75 100644
--- a/driver_zodiac.c
+++ b/driver_zodiac.c
@@ -1,6 +1,11 @@
/*
* Handle the Rockwell binary packet format supported by the old Zodiac chipset
*
+ * Week counters are not limited to 10 bits. It's unknown what
+ * the firmware is doing to disambiguate them, if anything; it might just
+ * be adding a fixed offset based on a hidden epoch value, in which case
+ * unhappy things will occur on the next rollover.
+ *
* This file is Copyright (c) 2010 by the GPSD project
* BSD terms apply: see the file COPYING in the distribution root for details.
*/
@@ -221,6 +226,7 @@ static gps_mask_t handle1002(struct gps_device_t *session)
int gps_seconds = getzlong(11);
/* gps_nanoseconds = getzlong(13); */
/*@-charint@*/
+ /* Note: this week counter is not limited to 10 bits. */
session->context->gps_week = (unsigned short)gps_week;
session->gpsdata.satellites_used = 0;
memset(session->gpsdata.used, 0, sizeof(session->gpsdata.used));