diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2006-06-07 17:52:08 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2006-06-07 17:52:08 +0000 |
commit | 0f333c4c5961de99dcc3fd8f6e82bc45e1de003c (patch) | |
tree | 824d8c2734788fcb96c7c572de2c724dd0c45e2e /nmea_parse.c | |
parent | 808f85fe398c3275087c369355ebc8a224e39c2a (diff) | |
download | gpsd-0f333c4c5961de99dcc3fd8f6e82bc45e1de003c.tar.gz |
Add dgnss.c, which should have been checked in with the NTRIP support.
Also check in the heading patch under -DHEADING_FIX.
Diffstat (limited to 'nmea_parse.c')
-rw-r--r-- | nmea_parse.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/nmea_parse.c b/nmea_parse.c index 6c186a2f..ef152bc8 100644 --- a/nmea_parse.c +++ b/nmea_parse.c @@ -508,9 +508,17 @@ static gps_mask_t processTNTHTM(int c UNUSED, char *field[], struct gps_device_t //gpsd_zero_satellites(&session->gpsdata); +#ifdef HEADING_FIX + // these fields are not handled by gps_merge_fix(), so must be written directly to the current fix structure +#endif /* HEADING_FIX */ session->gpsdata.fix.time = timestamp(); +#ifndef HEADING_FIX session->gpsdata.newdata.track = atof(field[1]); +#else /* HEADING_FIX */ + session->gpsdata.fix.heading = atof(field[1]); +#endif /* HEADING_FIX */ session->gpsdata.headingStatus = *field[2]; +#ifndef HEADING_FIX mask |= (TRACK_SET | MODE_SET); session->gpsdata.status = STATUS_FIX; /* could be DGPS_FIX, we can't tell */ //session->gpsdata.newdata.mode = MODE_2D; @@ -518,15 +526,35 @@ static gps_mask_t processTNTHTM(int c UNUSED, char *field[], struct gps_device_t //session->gpsdata.newdata.mode = MODE_NO_FIX; session->gpsdata.newdata.pitch = atof(field[3]); +#else /* HEADING_FIX */ + // this device does not provide track, mode, or status - we have to rely on other devices for that! +// mask |= (TRACK_SET | MODE_SET); +// session->gpsdata.status = STATUS_FIX; /* could be DGPS_FIX, we can't tell */ +// session->gpsdata.newdata.mode = MODE_2D; + + session->gpsdata.fix.pitch = atof(field[3]); +#endif /* HEADING_FIX */ session->gpsdata.pitchStatus = *field[4]; +#ifndef HEADING_FIX session->gpsdata.newdata.roll = atof(field[5]); +#else /* HEADING_FIX */ + session->gpsdata.fix.roll = atof(field[5]); +#endif /* HEADING_FIX */ session->gpsdata.rollStatus = *field[6]; +#ifndef HEADING_FIX session->gpsdata.newdata.dip = atof(field[7]); +#else /* HEADING_FIX */ + session->gpsdata.fix.dip = atof(field[7]); +#endif /* HEADING_FIX */ session->gpsdata.horzField = atof(field[8]); +#ifndef HEADING_FIX //gpsd_report(5, "Heading %lf %c.\n", session->gpsdata.fix.track, session->gpsdata.fix.headingStatus); +#else /* HEADING_FIX */ + //gpsd_report(5, "Heading %lf %c.\n", session->gpsdata.fix.heading, session->gpsdata.fix.headingStatus); +#endif /* HEADING_FIX */ return mask; } #endif /* TNT_ENABLE */ |