summaryrefslogtreecommitdiff
path: root/driver_nmea0183.c
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Stop adding 37 to some GN PRN's.Gary E. Miller2016-04-071-1/+1
| | | | | | | | What could go wrong with code that says this: /* GLONASS GL doesn't seem to do this, but better safe than sorry */ GPGSA prn 21 was becoming prn 58
* GPGSV took a blank as 0 then converted that to a PRNGary E. Miller2016-04-071-3/+9
| | | | | | Skip blanks now. Blank in BDGSV became PRN=200 Blank in GLGSV became PRN=37
* Ooops, two steps forward, one back.Gary E. Miller2016-04-071-1/+4
| | | | | satellites_visible is used as a counter by xxGSV. so setting in from xxGGA beaks some regressions.
* GGA is sats visible, not sats used.Gary E. Miller2016-04-071-1/+1
| | | | | This was messing up xxGSA which uses satellites_used as a counter and index into sats_used.
* @ Skytraq tweaks: Add a probe, detect RTK.Gary E. Miller2016-04-071-6/+22
| | | | | A normal probe fails, and is not needed since we can wait for PSTI. Update mode detection in processGLL() to handle 'F', 'R' and 'S' modes.
* Use the data from Skytraq PSTI,030 sentence.Gary E. Miller2016-04-051-17/+110
| | | | | This duplicates, but improves on the accuracy of GPVTG. Also add a bit on PSTI,001 and PSTI,032
* Improve GNGSA handling, add rx210.log which shows the problem.Gary E. Miller2016-04-051-3/+22
| | | | | GNGSA's almost always come in pairs, and never with any other flavor of xxGSA.
* Cleanup: atof() -> safe_atof()Gary E. Miller2016-04-051-2/+2
|
* Tweak last $PSTI update.Gary E. Miller2016-04-041-2/+2
| | | | Fix a comment, clean up a log output.
* Decode more of Skytraq $PSTIGary E. Miller2016-04-041-8/+40
| | | | | Decode $PSTI,030 and $PSTI,032 to log out Not used in session_t yet.
* GPGST time was always 1970-01-03Txxxx. Fixed.Gary E. Miller2016-03-301-1/+7
| | | | | | | The time in the packet was seconds in the day. It needed to be merged with the known date. rergressions updated. The chk files clearly show it is better now.
* Fix GPGSA/BDGSA processing so they combine.Gary E. Miller2016-03-301-6/+33
| | | | | | | | The combine code stolen from the GPGSV/BDGSV combining code. Just 2 regressions changed. No surprise since Beidu rarely seen in the USA. I eyeballed the changes in the chk files and they look good.
* Improve a comment.Eric S. Raymond2016-03-301-1/+5
|
* Improve a comment explaining multiple sat views.Eric S. Raymond2016-03-301-7/+8
|
* Improve comment on GPGSA/BDGSA problem.Gary E. Miller2016-03-291-2/+7
|
* Add note about GPGSV/BPGSV not ccombing properly.Gary E. Miller2016-03-291-0/+9
| | | | And example of the failure in test/daemon/skytrack-fixB.log.chk
* Skytraq GPGST time has 3 digits past decimal.Gary E. Miller2016-03-281-2/+2
|
* Comment in the code the accuracy needed for cm level lat/lon.Gary E. Miller2016-03-281-1/+10
|
* $PSTI means we have subtype Skytraq.Gary E. Miller2016-03-281-0/+3
|
* Add stub to decode Skytraq $PSTI sentence.Gary E. Miller2016-03-281-3/+42
| | | | I'm still looking for good documentation of what is in that sentence.
* Parse iSync $PTNTA oscillator status packetsMichael Brown2016-02-091-0/+58
| | | | Signed-off-by: Michael Brown <mbrown@fensystems.co.uk>