| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Strangely, this changed no regressions....
|
|
|
|
|
| |
NTPTIME is from the serial stream, it never had anything to
do with PPS and it just confused everyone.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Spectratime iSync devices comprise a u-blox 6 attached to a
separate iSync microcontroller which drives a rubidium oscillator.
The oscillator status messages may appear in the middle of the
underlying GPS messages; these are handled via the "stashed partial
message" support.
This patch modifies the u-blox driver's parse_input() method to
delegate NMEA messages to generic_parse_input() rather than
nmea_parse(). This is done to allow the iSync trigger string to be
detected after reactivation despite the "stickiness" of the u-blox
driver.
The initial delay time in gpsfake is extended from 1.0 seconds to 1.4
seconds to allow for the additional two 200ms delays introduced by the
calls to gpsd_set_speed() in isync_detect().
The iSync driver legitimately uses both a probe_detect() method and a
trigger string. The guard against such drivers is therefore removed
from test_packet.c.
The regression test data includes one artificially induced packet
collision (where an oscillator status message appears in the middle of
a GPS message), since this corner case is difficult to trigger
deliberately in normal operation.
Signed-off-by: Michael Brown <mbrown@fensystems.co.uk>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
...no attempt to address the weird cross-platfprm variability we've seen lately.
All regression tests pass.
|
|
|
|
|
| |
Now outputs the extended version info.
subtype is a bit short, just fit in there what we can.
|
| |
|
|
|
|
|
| |
Eventually deprecated UBX-MON-SOL goes away and we must finish
decoding UBX-MON-PVT. UBX-MON-PVT is not a superset of UBX-MON-SOL.
|
| |
|
| |
|
|
|
|
| |
No idea at what software version UBX-NAV-PVT is present.
|
|
|
|
|
|
| |
gpsd sends a ton of strings to the GPS on change from NMEA -> UBX
mode. Most of it gets lost. So move version request later in
the initialization.
|
| |
|
|
|
|
|
| |
scons check works, but no version working. Hitting same
bug esr hit in configuring u-blox.
|
|
|
|
| |
Now with GLONASS and BeiDou
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to Matthias Drochner at
http://lists.lysator.liu.se/pipermail/lsh-bugs/2003q4/000151.html:
I thought I'd give lsh a try, just to see how it compares to openssh...
The client didn't work well on NetBSD, got a message like "unexpected
EWOULDBLOCK" on each keystroke.
Looked a bit deeper and found that stdin is set to O_NONBLOCK and
a raw tty mode with c_cc[VMIN] > 1 and c_cc[VTIME] > 0.
I'll append a little test program which does the same. I've tried
it on 3 operating systems (Linux, NetBSD, Digital UNIX), and it
behaves differently on each:
-on Linux, if a key is pressed, the read returns immediately with
that one character
-on NetBSD, the read returns with no data but EWOULDBLOCK
-on D'UNIX, the poll() doesn't teturn before 4 keypresses are done;
the read() returns these 4 characters
Indeed, in SUSv2's termios page is a sentence which says that if
both O_NONBLOCK and VTIME>0 are set, the behaviour is more or less
undefined.
I've solved my immediate problems by setting VMIN to 1 instead of 4
in unix_interact.c:do_make_raw(), but VTIME is still pointless,
so I wouldn't call this a clean solution.
All regression tests pass.
|
|
|
|
| |
Length 0 means the minimum is unknown and the driver should use character I/O.
|
| |
|
|
|
|
|
|
| |
Don't use constant/expression from an array's definition when referring
to its size. Eliminates redundancy and avoids problems when array size
changes. The change doesn't affect generated code.
|
|
|
|
|
|
|
| |
Instead, set the used member in the satellites array directly where possible.
The NMEA0183 and TSIP drivers still need a local equivalent.
This changes pseudo-NMEA GSA output in several binary-protocol tests.
|
| |
|
| |
|
|
|
|
| |
Required one check file rebuild. All regressuin tests pass.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...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.
|
|
|
|
| |
All regression tests pass.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...with calls to gps_notify(), which indirects to its output method
through a slot in an errout structure. Usually the errout structure
lives inside the session context, but because struct errout_t is its
own thing this does not have to be the case. One large clique of
gpsd_notify() calls, in packet.c and isgps.c, looks at a struct
errout_t copy in a lexer control block
This change is not complete. Remnant gpsd_report calls need to be changed,
and gpsmon needs to be tweaked so that the struct_error_t in its context
is a non-defaukt hook updating the cuses display rather than simply
dumping to stderr. Also the report label functionality needs to be added.
All regression tests pass.
|
|
|
|
|
|
| |
A major step towards eliminating reverse linkage.
All regression tests pass.
|
|
|
|
| |
All regression tests pass.
|
|
|
|
| |
A move towards eliminating reverse linkage.
|
| |
|
|
|
|
|
|
| |
This enables us to force readonly off while it's being called.
The practical effect is that gpsmon can get a firmware version (if this
is possible) without reconfiguring the device.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When reconfigure is false, the link step fails as follows.
/scratch/peko/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -o gpsd -pthread --sysroot=/scratch/peko/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot gpsd.o ntpshm.o shmexport.o dbusexport.o -L. -L/scratch/peko/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib -lrt -lbluetooth -ldbus-1 -lgpsd -lusb-1.0 -lbluetooth -lgps -lm -ldbus-1 -lpthread -lrt
./libgpsd.so: undefined reference to `ubx_mode'
collect2: error: ld returned 1 exit status
scons: *** [gpsd] Error 1
scons: building terminated because of errors.
The problem appears to be a failure to guard a call to ubx_mode with a
RECONFIGURE_ENABLE ifdef.
Signed-off-by: Simon Dawson <spdawson@gmail.com>
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
| |
|
|
|
|
|
| |
That is, rather than having to interpolate them. This required two
regression-test rebuilds in obvious places.
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch, the implementation of the u-blox driver parsed the
EPX/EPY/EPS values properly, but did not update bitfields SPEEDERR_SET
and HERR_SET.
Since the mask was not being updated, the estimated accuracy was being
immediately overwritten from gpsd_error_model().
Three regression tests were affected and had to be rebuilt.
|
| |
|
|
|
|
| |
This logging level is intended to directly explain accompanying I/O messages.
|
|
|
|
|
|
|
|
|
|
| |
Way too much logging was happening at LOG_IO level, which is intended for
watching data traffic in and out of the daemon rather than all the minutiae
of data analysis - that's LOG_DATA.
Also, LOG_DATA gets pushed down two levels. The effect is that -D 5
means exactly what it did, but for purposes other than driver debugging
-D 4 now suffices.
|
| |
|