diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2004-09-29 19:55:57 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2004-09-29 19:55:57 +0000 |
commit | 53d48e566f51fadc316dd85beeebc5be2d912d16 (patch) | |
tree | 86933065919733527ea5c120dbe9cbb97ea9c140 | |
parent | 87e01f5caacb004aa545a1214adb530b843fc7b8 (diff) | |
download | gpsd-53d48e566f51fadc316dd85beeebc5be2d912d16.tar.gz |
Zodiac sequence number needs to be part of the state structure.
-rw-r--r-- | gpsd.h | 1 | ||||
-rw-r--r-- | zodiac.c | 14 |
2 files changed, 7 insertions, 8 deletions
@@ -55,6 +55,7 @@ struct gps_session_t #ifdef ZODIAC_ENABLE /* private housekeeping stuff for the Zodiac driver */ + unsigned short sn; /* packet sequence number */ double mag_var; /* Magnetic variation in degrees */ double separation; /* Geoidal separation */ int year; @@ -22,8 +22,6 @@ enum { #define O(x) (x-6) -static unsigned short sn = 0; - struct header { unsigned short sync; unsigned short id; @@ -113,12 +111,12 @@ static void zodiac_init(struct gps_session_t *session) t = time(NULL); tm = gmtime(&t); - if (sn++ > 32767) - sn = 0; + if (session->sn++ > 32767) + session->sn = 0; memset(data, 0, sizeof(data)); - data[0] = sn; /* sequence number */ + data[0] = session->sn; /* sequence number */ data[1] = (1 << 2) | (1 << 3); data[2] = data[3] = data[4] = 0; @@ -144,12 +142,12 @@ static void send_rtcm(struct gps_session_t *session, unsigned short data[34]; int n = 1 + (rtcmbytes/2 + rtcmbytes%2); - if (sn++ > 32767) - sn = 0; + if (session->sn++ > 32767) + session->sn = 0; memset(data, 0, sizeof(data)); - data[0] = sn; /* sequence number */ + data[0] = session->sn; /* sequence number */ memcpy(&data[1], rtcmbuf, rtcmbytes); data[n] = zodiac_checksum(data, n); |