| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Changed two regressions for the better.
|
| |
|
| |
|
|
|
|
| |
Check for properly formatted ddmmyy string.
|
|
|
|
| |
Try to catch bad dates...
|
|
|
|
|
| |
Turns out eps also came from other GPS, but never made it to TPV.
Regressions changed to show new eps data.
|
|
|
|
|
| |
Turns out epd also came from SiRF, but never made it to TPV.
Regressions changed to show new epd data.
|
|
|
|
|
| |
I suspect this catches a few unitialized variable cases.
No changes to regressions.
|
|
|
|
| |
No regression changes.
|
|
|
|
|
| |
This changed some regressions as TPV now has a "status" field it
did not have before.
|
|
|
|
| |
No regression changes.
|
|
|
|
|
| |
Surprise. Every regression test with G.GNS had either a matching
RMC or GGA, so zero change in output...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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...
|
|
|
|
| |
More to come.
|
|
|
|
| |
GLL use new values. GGA was just wrong.
|
|
|
|
| |
NMEA just keeps getting uglier and uglier...
|
| |
|
|
|
|
| |
So many ways to screw up xxGSA...
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This showed up a bug where rtcm3_unpack() was not clearing its
rtcm3 data, which is a union with the attitude data.
|
|
|
|
| |
A GPHDT with no heading was output as a heading of 0.00.
|
|
|
|
| |
Disabled as it breaks the cycle decoder in test/daemon/rst39.log
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
| |
Turns out to be a NOP. Every GPVTG with field 9 == N, also had
blank track field.
But starting point for further work.
|
|
|
|
|
|
|
| |
Co-authored-by: hkpatel <hpatel@sea-machines.com>
Co-authored-by: dwilliams <equipoise@gmail.com>
Signed-off-by: Gary E. Miller <gem@rellim.com>
|
| |
|
| |
|
|
|
|
|
|
|
| |
Ensure mask is fully set.
TESTED:
'scons build-all check' still passes
|
|
|
|
| |
regressions updated. Other rdivers prolly need similar fixes.
|
|
|
|
|
| |
Gotta clear the computed DOPs so that fill_dop() will recompute
them. I suspect this is the tipo of the iceberg.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
Sad, C99 did not actually standardize the defines to invoke
the standard.
|
|
|
|
| |
uint is now unsigned int.
|
|
|
|
|
|
| |
driver_nmea0183.c:1255:10: warning: taking the
absolute value of unsigned type 'unsigned int' has no effect
[-Wabsolute-value]
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
Not all doc specifies the number of PRNs in the sentence. The
doc that does usually says 12.
|
|
|
|
|
| |
NTPTIME is from the serial stream, it never had anything to
do with PPS and it just confused everyone.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|