summaryrefslogtreecommitdiff
path: root/rtcmdecode.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2006-12-04 12:31:50 +0000
committerEric S. Raymond <esr@thyrsus.com>2006-12-04 12:31:50 +0000
commit57bbd877ddc78eb2f37b368d7b048bc69766c81d (patch)
tree835581a1457e96edd7da7912ab81917be691280f /rtcmdecode.c
parent681505feaa7bf5db39e0c4ab132d1302d946631d (diff)
downloadgpsd-57bbd877ddc78eb2f37b368d7b048bc69766c81d.tar.gz
Found and fixed the bug that was breaking an RTCM regression test.
Diffstat (limited to 'rtcmdecode.c')
-rw-r--r--rtcmdecode.c47
1 files changed, 25 insertions, 22 deletions
diff --git a/rtcmdecode.c b/rtcmdecode.c
index a911dfc1..1fe7e173 100644
--- a/rtcmdecode.c
+++ b/rtcmdecode.c
@@ -34,22 +34,22 @@ static void decode(FILE *fpin, FILE *fpout)
/* RTCM-104 bits on fpin to dump format on fpout */
{
int c;
- struct gps_device_t device;
+ struct gps_packet_t lexer;
struct rtcm_t rtcm;
enum isgpsstat_t res;
off_t count;
char buf[BUFSIZ];
- isgps_init(&device.packet);
+ isgps_init(&lexer);
count = 0;
while ((c = fgetc(fpin)) != EOF) {
- res = rtcm_decode(&device.packet, (unsigned int)c);
+ res = rtcm_decode(&lexer, (unsigned int)c);
if (verbose >= ISGPS_ERRLEVEL_BASE + 3)
fprintf(fpout, "%08lu: '%c' [%02x] -> %d\n",
(unsigned long)count++, (isprint(c)?c:'.'), (unsigned)(c & 0xff), res);
if (res == ISGPS_MESSAGE) {
- rtcm_unpack(&rtcm, (char *)device.packet.isgps.buf);
+ rtcm_unpack(&rtcm, (char *)lexer.isgps.buf);
rtcm_dump(&rtcm, buf, sizeof(buf));
(void)fputs(buf, fpout);
}
@@ -62,9 +62,11 @@ static void pass(FILE *fpin, FILE *fpout)
/* dump format on stdin to dump format on stdout (self-inversion test) */
{
char buf[BUFSIZ];
- struct gps_device_t session;
+ struct gps_packet_t lexer;
+ struct rtcm_t rtcm;
- memset(&session, 0, sizeof(session));
+ memset(&lexer, 0, sizeof(lexer));
+ memset(&rtcm, 0, sizeof(rtcm));
while (fgets(buf, (int)sizeof(buf), fpin) != NULL) {
int status;
@@ -72,17 +74,17 @@ static void pass(FILE *fpin, FILE *fpout)
if (buf[0] == '#') {
(void)fputs(buf, fpout);
continue;
- }
-
- status = rtcm_undump(&session.gpsdata.rtcm, buf);
+ }
+ status = rtcm_undump(&rtcm, buf);
if (status == 0) {
- (void)memset(session.packet.isgps.buf, 0, sizeof(session.packet.isgps.buf));
- (void)rtcm_repack(&session.gpsdata.rtcm, session.packet.isgps.buf);
- (void)rtcm_unpack(&session.gpsdata.rtcm, (char *)session.packet.isgps.buf);
- (void)rtcm_dump(&session.gpsdata.rtcm, buf, sizeof(buf));
+ (void)memset(lexer.isgps.buf, 0, sizeof(lexer.isgps.buf));
+ (void)rtcm_repack(&rtcm, lexer.isgps.buf);
+ (void)rtcm_unpack(&rtcm, (char *)lexer.isgps.buf);
+ (void)rtcm_dump(&rtcm, buf, sizeof(buf));
(void)fputs(buf, fpout);
- memset(&session, 0, sizeof(session));
+ memset(&lexer, 0, sizeof(lexer));
+ memset(&rtcm, 0, sizeof(rtcm));
} else if (status < 0) {
(void) fprintf(stderr, "rtcmdecode: bailing out with status %d\n", status);
exit(1);
@@ -96,21 +98,22 @@ static void encode(FILE *fpin, FILE *fpout)
/* dump format on fpin to RTCM-104 on fpout */
{
char buf[BUFSIZ];
- struct gps_device_t session;
+ struct gps_packet_t lexer;
+ struct rtcm_t rtcm;
- memset(&session, 0, sizeof(session));
+ memset(&lexer, 0, sizeof(lexer));
while (fgets(buf, (int)sizeof(buf), fpin) != NULL) {
int status;
- status = rtcm_undump(&session.gpsdata.rtcm, buf);
+ status = rtcm_undump(&rtcm, buf);
if (status == 0) {
- (void)memset(session.packet.isgps.buf, 0, sizeof(session.packet.isgps.buf));
- (void)rtcm_repack(&session.gpsdata.rtcm, session.packet.isgps.buf);
- (void)fwrite(session.packet.isgps.buf,
+ (void)memset(lexer.isgps.buf, 0, sizeof(lexer.isgps.buf));
+ (void)rtcm_repack(&rtcm, lexer.isgps.buf);
+ (void)fwrite(lexer.isgps.buf,
sizeof(isgps30bits_t),
- (size_t)session.gpsdata.rtcm.length, fpout);
- memset(&session, 0, sizeof(session));
+ (size_t)rtcm.length, fpout);
+ memset(&lexer, 0, sizeof(lexer));
} else if (status < 0) {
(void) fprintf(stderr, "rtcmdecode: bailing out with status %d\n", status);
exit(1);