summaryrefslogtreecommitdiff
path: root/driver_nmea0183.c
Commit message (Collapse)AuthorAgeFilesLines
...
* driver_nmea0183: Have $GPRMC,V, report no fix.Gary E. Miller2019-03-141-1/+2
| | | | Changed two regressions for the better.
* drier_nmea: Make merge_hhmmss() more paranoid, return error codes.Gary E. Miller2019-03-141-79/+108
|
* driver_nmea: Fix potential segfault w/ DD() in merge_ddmmyy()Gary E. Miller2019-03-141-3/+4
|
* driver_nmea0183: Be more paranoid in merge_ddmmyy()Gary E. Miller2019-03-141-2/+28
| | | | Check for properly formatted ddmmyy string.
* driver_nmea0813: Change merge_ddmmyy() to return errors.Gary E. Miller2019-03-141-11/+20
| | | | Try to catch bad dates...
* driver_nmea0183 and more: Decode $PSRFEPE add eps.Gary E. Miller2019-03-131-6/+11
| | | | | Turns out eps also came from other GPS, but never made it to TPV. Regressions changed to show new eps data.
* driver_nmea0183 and more: Decode $PSRFEPE, and epd.Gary E. Miller2019-03-131-2/+66
| | | | | Turns out epd also came from SiRF, but never made it to TPV. Regressions changed to show new epd data.
* driver_nmea0183: Be more consisten on gps_mask_t mask.Gary E. Miller2019-03-131-50/+37
| | | | | I suspect this catches a few unitialized variable cases. No changes to regressions.
* driver_nmea0183: Change $PSTI,030, use faa_mode() and altitude.Gary E. Miller2019-03-081-50/+35
| | | | No regression changes.
* driver_nmea0183: Improve GxRMC to decode FAA Mode indicator.Gary E. Miller2019-03-081-2/+2
| | | | | This changed some regressions as TPV now has a "status" field it did not have before.
* driver_nmea: move FAA Mode decode into faa_mode().Gary E. Miller2019-03-081-101/+75
| | | | No regression changes.
* driver_nmea0183: Add GxGNS decode. No regressions changed.Gary E. Miller2019-03-081-15/+177
| | | | | Surprise. Every regression test with G.GNS had either a matching RMC or GGA, so zero change in output...
* Change NMEA mode setting, thus major changes in gpsd_error_model().Gary E. Miller2019-03-071-86/+264
| | | | | | | | | | | | | | | | The start of this overly large patch was to simply move the test for MODE_2D/3D flipping, which only affect NMEA 183, back into driver_nmea0813.c But that was intertwined with how gpsd_error_model() computes derived variables, which required major changes to how NMEA 183 mode_2D/3D are set. This ultimatly led to major regression test results. Almost all for the better. I tried to break it up, but moving from one paradigm to another needed one big jump...
* driver_nmea0183: Clean up fixmode in GGA and RMC.Gary E. Miller2019-02-131-21/+56
| | | | More to come.
* driver_nmea0183: Fix status for GLL and GGA.Gary E. Miller2019-02-061-4/+44
| | | | GLL use new values. GGA was just wrong.
* driver_nmea0183: Fix SiRFstarV in NMEA mode with last_gga_talkerGary E. Miller2019-02-041-7/+31
| | | | NMEA just keeps getting uglier and uglier...
* driver_nmea0813: Tweak some log messages.Gary E. Miller2019-01-251-4/+4
|
* driver_nmea0183: Tweak some comments about xxGSA.Gary E. Miller2019-01-251-5/+9
| | | | So many ways to screw up xxGSA...
* nmea0183: Use the pdop from GGA.Gary E. Miller2018-12-041-0/+4
|
* LICENSE: Update licenses for consistency. No functional changes.Gary E. Miller2018-11-191-1/+1
|
* driver_nmea0183: Fix off by one error in $GLGSV decode.Gary E. Miller2018-10-251-1/+1
|
* driver_nmea0183: adjust $GL, $QZ PRN offsets.Gary E. Miller2018-10-021-2/+2
|
* driver_nmea0813: tweak to PRN decode.Gary E. Miller2018-09-251-7/+7
|
* driver_nmea0183: Decode gnssid:svid from $xxGSV.Gary E. Miller2018-09-191-16/+62
|
* driver_nmea0183: Fix NMEA PRN mapping in comments.Gary E. Miller2018-09-191-9/+10
|
* ATT: centralize clearing of the attitude data.Gary E. Miller2018-09-111-39/+0
| | | | | This showed up a bug where rtcm3_unpack() was not clearing its rtcm3 data, which is a union with the attitude data.
* Add regression for hemisphere GPS. Fix detection of empty GPHDT.Gary E. Miller2018-09-111-4/+17
| | | | A GPHDT with no heading was output as a heading of 0.00.
* driver_nmea0183: 1st cut at support OxTS PASHR.Gary E. Miller2018-06-171-2/+14
| | | | Disabled as it breaks the cycle decoder in test/daemon/rst39.log
* Support Galileo $GA... talkers and fix a couple of $GB casesChris Lawrence2018-06-151-6/+13
| | | | | | | | | | | | | | | | | | | | | | Now that the Galileo constellation is live, the NMEA 4.1 standard appears to have standardized on the "$GA..." prefix for Galileo-specific messages. The lexer currently filters these out; this patch ensures they go through to e.g. gpspipe -r. (I tore my hair out for days trying to figure out why these were not being passed through even though I could see them using screen etc.) Also added logic to the GSA and GSV message parsing to account for the Galileo messages. It probably needs more work to match up satellite numbers between the GSA and GSV messages and to account for the GNSS type field in NMEA 4.1, but it's a start at least. I also fixed a couple of situations where the 'GB' prefix was being ignored even though 'BD' was not. This leads to a regression in test/daemon/beidou-gb.log, but the "regression" is actually incorrect old behavior (JSON messages omitting BeiDou satellites) exposed by the patch. Signed-off-by: Gary E. Miller <gem@rellim.com>
* driver_nmea shorten overlong lines. No functional changes.Gary E. Miller2018-06-141-20/+40
|
* driver_nmea083.c Add test for field 9 in GPVTG.Gary E. Miller2018-06-141-2/+36
| | | | | | | Turns out to be a NOP. Every GPVTG with field 9 == N, also had blank track field. But starting point for further work.
* Implement processing of NMEA0183 - $GPVTG messagesdwilliams2018-06-131-1/+37
| | | | | | | Co-authored-by: hkpatel <hpatel@sea-machines.com> Co-authored-by: dwilliams <equipoise@gmail.com> Signed-off-by: Gary E. Miller <gem@rellim.com>
* SPDXify the licerse references.Eric S. Raymond2018-03-081-1/+1
|
* Clean up C and Python code-checker warnings.Eric S. Raymond2017-09-061-2/+2
|
* cppcheck: error - use of uninitialized variableRobert Norris2017-02-091-2/+2
| | | | | | | Ensure mask is fully set. TESTED: 'scons build-all check' still passes
* nmea 0183: better fix for non-updating DOPs.Gary E. Miller2017-01-091-2/+6
| | | | regressions updated. Other rdivers prolly need similar fixes.
* nmea 0183: fix TDOP only compuetd once at startup.Gary E. Miller2017-01-091-0/+2
| | | | | Gotta clear the computed DOPs so that fill_dop() will recompute them. I suspect this is the tipo of the iceberg.
* Fixes spurious GSV warning on multi-GNSS receivers.Fred Wright2016-12-201-1/+3
| | | | | | | | | | | | | | | | | | | | This bug was intended to be fixed by commit 074499e16. The problem is that the total satellite count in xxGSV sentences is per-talker rather than global, but the sanity check only has the global total available for comparison. The original change attempted to fix this by suppressing the check whenever non-GPS talkers are detected (in the current cycle), on the assumption that GPGSV blocks always come first. Thus, the GPGSV total would be checked, but not the others. However, the sense of the conditional was inverted, disabling the check for GPGSV while causing it to produce bogus warnings in most multi-GNSS cases. This change corrects that. The proper fix for this would be to implement per-talker satellite totals. There's now a FIXME to that effect. TESTED: All regression tests pass, and running gpsmon against a GPS/GLONASS receiver no longer produces spurious warnings (when enabled).
* for vsnprintf() FreeBSD wants __ISO_C_VISIBLE >= 1999Gary E. Miller2016-08-161-0/+4
| | | | | Sad, C99 did not actually standardize the defines to invoke the standard.
* uint was rmoved in C99. If gpsd enforce C99, then uint must go.Gary E. Miller2016-08-151-1/+1
| | | | uint is now unsigned int.
* No need to use abs() on an unsigned int.Gary E. Miller2016-08-091-1/+1
| | | | | | driver_nmea0183.c:1255:10: warning: taking the absolute value of unsigned type 'unsigned int' has no effect [-Wabsolute-value]
* Note difference between Skytraq Integer and Float RTK mode.Gary E. Miller2016-07-221-0/+3
|
* Gack. revert $STI handling, it breaks the regressions.Gary E. Miller2016-07-211-1/+1
|
* Decode SkytTraq undocumented $STI sentence.Gary E. Miller2016-07-211-6/+29
| | | | | | | Eric will gag at my abuse of the parser, but I'm not up to a major resturcture today. Not sure how to output the error in JSON.
* Initial support for undocumented SkyTraq $STI sentence.Gary E. Miller2016-07-201-1/+27
|
* Improve xxGSA commentsGary E. Miller2016-06-211-4/+6
|
* Add some commments on xxGSA.Gary E. Miller2016-06-211-0/+6
| | | | | Not all doc specifies the number of PRNs in the sentence. The doc that does usually says 12.
* PPSTIME -> NTPTIMEGary E. Miller2016-04-241-1/+1
| | | | | NTPTIME is from the serial stream, it never had anything to do with PPS and it just confused everyone.
* Fixes phantom satellites from xxGSVs with a real signal ID.Fred Wright2016-04-211-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The change to permit the new signal ID in the GSV sentences broke the loop end test, causing an extra "satellite" to be processed when the signal ID is present. The signal ID itself is misinterpreted as a satellite ID, with the other three values coming from indexing off the end of the buffer (typically getting zeroes). For receivers (incorrectly) reporting a signal ID of zero, this would typically get filtered out by the zero-ID filter (but not in non-GPS cases prior to fixing another bug), so it often didn't matter. But for receivers reporting a value of 1 (L1 C/A), this resulted in multiple phantom satellites with "PRN" 1. If the real PRN 1 was in use, it also screwed up the "active" count. The fix is just to round the field count down to a multiple of 4 prior to using it as the loop's end test. Also removes an incorrect comment about there being no more than three GSV sentences in a group. TESTED: Ran "scons build-all check". Also verified that, with the Navika receiver that reports the signal ID as 1, gpsmon and xgps no longer report phantom PRN 1 satellites, and cgps no longer misbehaves in some other (uninvestigated) way due to the confusion.
* Fixes bug in filtering of ID 0 in satellite views.Fred Wright2016-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Because the GSV processing invokes nmeaid_to_prn() before checking for an apparent ID of zero, it was possible for zero (or blank) IDs for non-GPS sentences to get offset to nonzero values and hence not filtered out. This fix ensures that only nonzero values are adjusted. Due to this bug, two of the regression tests had incorrect reference results: 1) The nl2008u receiver includes the new signal ID field, though the reported value is (incorrectly) zero. Due to another bug (to be fixed separately), this is interpreted as an additional ID in each GSV sentence. The zero-ID filter excluded this correctly for GPGSV, but for GLGSV it saw phantom entries for "ID 37". 2) The sl869 receiver reports empty fields for unused satellite slots in any GSV sentence. Again, this didn't hurt for GPGSV, and the GLGSV test data happens to have a multiple of four satellites, but the QZGSV sentences produced phantom "ID 193" entries. TESTED: Ran "scons build-all check", which passed after updating the two regression cases noted above.