| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
__attribute__ ((fallthrough)); is only in GCC after version 7. Not
supported by other cc, and in fact throws warnings on other cc.
The comment "/* FALLTHOUGH */" has the same effect when
-Wimplicit-fallthrough=X is used, with X being 1, 2, 3, or 4.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
All functional changes inside "#ifdef GREIS_ENABLE"
Includes new regression tests. All regressions tests
pass.
Developed by Gregory Fong, with help and support from
Virgin Orbit.
Signed-off-by: Gary E. Miller <gem@rellim.com>
|
|
|
|
|
|
| |
The packetizer could get stuck in TSIP mode forever.
Thanks to Virgin Orbit for their support fixing this bug.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This one instance of the 63 character-pushback changes in commit
fbaaaa76 broke the packet-regress test, though that was masked due to
another bug's causing that test to be disabled. With this instance
reverted, the test passes again.
It's not entirely clear why a change within Zodiac-specific code broke
one SiRF test and two Evermore tests, but that's empirically the case.
This change affects one daemon regression test. The ublox-8 test
begins with a $GPRMC sentence preceded by a bunch of garbage. The
broken version of packet.c skips this sentence, while the fixed
version recognizes it. The test data has been updated accordingly.
TESTED:
Manually ran the packet-regress test successfully.
Ran "scons build-all www check".
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Signed-off-by: Gary E. Miller <gem@rellim.com>
|
|
|
|
|
|
|
|
|
|
| |
0x5d: GNSS Satellite Tracking Status (multi-GNSS operation)
0x6c: Satellite Selection List
Still needs a regressions test.
Signed-off-by: Gary E. Miller <gem@rellim.com>
|
|
|
|
| |
Signed-off-by: Gary E. Miller <gem@rellim.com>
|
|
|
|
| |
It grabs packets, but does not decode any yet.
|
|
|
|
| |
No packet decoder yet.
|
|
|
|
|
|
|
|
|
|
| |
The Spectratime iSync GRClok and LNRClok devices generate NMEA-format
status packets, which report the status of the GPS-disciplined
rubidium oscillator. These packets are inserted randomly into the
middle of packets from the embedded u-Blox GPS.
Add support for a stash buffer, used to hold the initial portion of
interrupted NMEA packets.
|
| |
|
| |
|
|
|
|
| |
All regression tests pass.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The proximate cause was that we've been seing emission of error
messages that were randomly and disturbingly variable across different
environments - notably Raspbian and Gentoo splint gave nontrivially
different results than Ubuntu 14.10 splint. And this was *not* due to
Ubuntu patches! A pristine splint built from the 3.1.2 tarball on
Ubuntu didn't match the Raspbian and Gentoo results either.
But this has been coming for a while. Easy access to more modern
static analyzers such as coverity, scan-build and cppcheck has been
decreasing the utility of splint, which is unmaintained and somewhat
buggy and not easy to use.
Only file not cleaned is ppsthread.c, because Gary has been working
on it during this cleanup.
All regression tests pass. PPS observed live on GR601-W.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change is done so we can add a "log" hook to the pps_thread_t
structure (this is not done yet) and harmonize with the name of the
outer logging function. If that name had been left as gpsd_report()
there would have been scope for bad confusion with the report_hook
member.
Also, remove two stray duplicative printf calls from the NMEA2000 driver
(drivers shouldn't have printfs!) and fix one typo.
This is a step towards factoring out ntplib. For that to happen, the
PPS thread code needs to be decoupled from the core session structure.
No logic changes. Object compatibility preserved. All regression tests pass.
|
|
|
|
| |
All regression tests pass.
|
| |
|
|
|
|
|
| |
All regression tests pass. Required one test rebuild for QZNSS; Beidou
test added.
|
| |
|
|
|
|
|
|
| |
This fixes the last case where # EOF was not being recognized.
All regression tests pass.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...for most packet types. Attempting to make *all* character pushbacks do this
breaks the following tests:
test/daemon/ac12_binary.log
test/daemon/gp-320fw-2019-04-07-coldboot.log
test/daemon/naujoks-ntrip.log
test/daemon/naujoks-rtcm2.log
test/daemon/rtcm2.log
test/daemon/triton400.log
Someday we should figure out why, but it is not very urgent as the
capability is mostly just useful for faster recovery from garbage
data on the wire.
However, this change does have significant impact on the test framework.
It should make recognition of the "# EOF\r\n" token injected by gpsfake
reliable even in a binary packet stream.
|
|
|
|
| |
All regression tests pass.
|
| |
|
|
|
|
|
|
|
| |
...including the "# EOF" generated by gpsfake. The case that was sometimes
being mishandled was "# EOF" just after a binary packet end.
All regression tests pass.
|
|
|
|
| |
All regression tests pass.
|
|
|
|
| |
All regression tests pass.
|
| |
|
|
|
|
| |
This change doesn't affect generated binary code.
|
|
|
|
|
|
| |
scons passthrough=false was failing on several missing ifdef guards
for JSON_LEADER blocks. Added matching ifdef guards to allow it to
compile cleanly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Regression tests pass.
Author's notes:
RTCM2 support seems to be practically broken, if the stream
frequently includes the 0x40 byte. This byte causes packet.c to
temporarily think it is an AT1 stream, and stop calling rtcm2_decode()
while it thinks so.
I have an RTCM stream from station id 0, and this particular station ID
causes the 0x40 byte to appear in virtually every RTCM message, so for that
stream, I have to wait through hundreds of RTCM messages before it is
positively identified and RTCM decoding starts to work.
Patch attached, works for me.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cygwin GCC complains about code like isprint(c), where c is of type char.
The isX() and toX() functions/macros (ISO C allows either) all accept an
int, whose value should be either that of an unsigned char, or the
special value EOF (== -1).
So cast to unsigned char each argument to isprint, tolower, etc.
Silences several warnings of the form:
gpsutils.c: In function 'safe_atof':
gpsutils.c:90:5: warning: array subscript has type 'char'
[-Wchar-subscripts]
while (isspace(*p)) {
^
gpsutils.c:188:2: warning: array subscript has type 'char'
[-Wchar-subscripts]
while (isdigit(*p)) {
^
|
| |
|
|
|
|
| |
All regression tests pass.
|
|
|
|
|
|
| |
A major step towards eliminating reverse linkage.
All regression tests pass.
|
| |
|
|
|
|
|
|
| |
This is a large step towards eliminating the reverse linkage of gpsd_report().
Temporarily, it means that gpsmon will not redirect these messages to the
screen display properly. This will be fixed later.
|
|
|
|
| |
All regression tests pass.
|
|
|
|
| |
All regression tests pass.
|
| |
|
| |
|
| |
|