| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Don't force _POSIX_C_SOURCE 200112L, just make it a minimum.
|
|
|
|
| |
Supports forward copatibility in case of protocol extensions.
|
|
|
|
| |
Without a default, fails when connecting to older clients.
|
| |
|
|
|
|
| |
No place to put leapseconds in gps_data_t?
|
|
|
|
| |
Those are C/A L2 pseudo-range and carrierphase.
|
|
|
|
| |
So a client can see Carrier Phase slips.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
And have to use t_real for mtime bacause json.c has no t_long type.
|
| |
|
| |
|
|
|
|
| |
Also fix a bunch of memset() nits.
|
|
|
|
| |
New ?DEVICE:{"hexdata":"data" option.
|
|
|
|
|
|
| |
Odd, +Ing and -Inf are NaN, but isnan() says they are not! This
can lead to client crash. Use isfinite() instead, changing the
sense of the test.
|
|
|
|
| |
Signed-off-by: Gary E. Miller <gem@rellim.com>
|
| |
|
| |
|
|
|
|
|
| |
Their man page says _POSIX_C_SOURCE >= 200112L should work. It did
not.
|
|
|
|
| |
Almost 20 years after C99, Ubuntu still does not use it as default...
|
| |
|
|
|
|
|
| |
TESTED:
'scons build-all check' passes.
|
|
|
|
|
| |
Also update the affected regression files. gpsd had been
throwing away the DGPS status.
|
|
|
|
| |
Signed-off-by: Michael Brown <mbrown@fensystems.co.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fred Wright <fhgwright> writes:
While trying the regression tests on a MacBook (PowerPC), I ran across
some failures in the JSON unit test. Although this is ostensibly an
endian issue, it turns out that the code for parsing satellite view
data is actually incorrect for all processors, albeit more so for
big-endian processors.
The problem is that the three "integer" fields in struct satellite_t
are defined as shorts, but parsed as ints by the JSON parser. On a
big-endian processor, this causes the values to be misaddressed and
hence have incorrect values, but even on a little-endian processor
this is incorrect since it's storing four-byte values into two-byte
fields. The unit tests don't catch this aspect, since the fields are
favorably ordered such that the clobbered fields are clobbered before
being written pseudo-correctly.
I was able to demonstrate the "buffer overflow" misbehavior by
modifying the test data for the last satellite to provide the fields
in the reverse order from their order in the structure.
The simple fix for this would be just to change the shorts to ints in
the definition of struct satellite_t. On most processors, this doesn't
even cost any memory, since the presence of the double forces
eight-bye alignment, so the padded structure is 24 bytes regardless of
whether the three fields in question are shorts or ints. However,
there might be some processors with less strict alignment requirements
where using shorts would actually be helpful.
With the existing layout, the only possible fix is to add support for
shorts to the JSON parser, and adjust the satellite-view parsing
accordingly. The attached patch does that, as well as adding u_short
support for completeness (though it's not currently used). It also
provides the aforementioned change in the test data, in keeping with
the philosophy of "create a test for what just failed, so it doesn't
happen again".
Note that using shorts for these fields would be more effective if the
"used" field were also reduced to a short, instead of inheriting "int"
from "bool". That would shrink the structure to 16 bytes. It could be
further reduced to 12 bytes by using a float instead of a double for
the "ss" field (and even a float is gross overkill for this
purpose). This could all be more significant when MAXCHANNELS needs to
be increased (again) to accommodate the deployment of the newer
GNSSes.
|
| |
|
|
|
|
| |
Data is currently discarded, pending the next gps_data_t structure break.
|
|
|
|
| |
Still need a place for PPS precision.
|
|
|
|
| |
Next rev of gps_data_t->pps needs to add a field for precision.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
All regression tests pass. PPS observed live with gosmon.
gpsmon presently ignores this message, but shout display its contents near PPS.
|
|
|
|
| |
No logic changes. All regression tesrs pass. Live PPS observed.
|
|
|
|
|
|
|
|
| |
Also, use PPSDRIFT_SET as a client-side status flag for JSON PPS rather
than the (not yet shipped) TIMEDRIFT_SET. Next release we're probably
going to add a drift object for in-line time.
No logic changes. All regression tests pass.
|
| |
|
|
|
|
|
|
| |
Should fix Savannah bug #43789: Dip and mag_x are not available in gps_data_t
All regression test pass.
|
| |
|
|
|
|
| |
This change doesn't affect generated binary code.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...from a set of parallel arrays. This change flushed out a
longstanding bug in the computation of DOPs for estimated error bars.
Some test-load rebuilds were required:
geostar-geos1m-binary.log.chk: With this change error
estimates are computed and reported.
trimble-lassen_iq-3dfix.log, trimble-lassen_iq-3dfix.log: the
change revealed a bug in the computation of satellite-seen bits.
Error estimates did not change.
navcom.log: Error estimates changed.
With these rebuilds, all regression tests pass.
|
|
|
|
|
|
|
| |
Required a regression-test rebuild, of course. The field is still set by
the TSIP and SiRF drivers; the SiRF driver actually uses it. It may be
possible to eliminate the TSIP uses, but so far attempting this has
produced odd regression-test failures.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Finally defines a message validity nask that won't fit in 32 bits, alas.
Defines a timedrift structure that we will use internally as well.
|
|
|
|
|
| |
Only the 1001 sentence so far, with two fields missing. Not usable
for production yet, but gets infrastructure in place.
|