summaryrefslogtreecommitdiff
path: root/gpsd.h-tail
Commit message (Collapse)AuthorAgeFilesLines
* Remove some remnants of the adaptive-delay experiment.Eric S. Raymond2015-02-091-8/+0
| | | | All regression tests pass.
* Add TS_SUB() to subtract timespecs. Fix another double.Gary E. Miller2015-02-021-0/+8
|
* Fix insufficient precision in last_fixtime.clockGary E. Miller2015-02-011-1/+3
| | | | | | | | | | last_fixtime.clock and last_fixtime_clock were storing 63 bits of time in 53 bits of timestamp_t (double). Change timestamp_t to timespec to restore nSec precision. Along the way save some floating point that is slow in embedded systems that have no FPU.
* Back out the attempt to use VTIME.Eric S. Raymond2015-01-311-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Add missing pthread_mutex_init(&ppslast_mutex)Gary E. Miller2015-01-301-0/+3
| | | | | No error checking was previously done on uses of ppslast_mutex. So likely the mutex has never worked, just created the odd segfault.
* Create a logic path for each driver to set tty controls.Eric S. Raymond2015-01-291-0/+1
|
* Add a minimum packet length to every driver.Eric S. Raymond2015-01-291-0/+1
| | | | Length 0 means the minimum is unknown and the driver should use character I/O.
* Add gpsdecode -m option for dumping minimum packet lengths.Eric S. Raymond2015-01-291-0/+1
|
* Try a simpler adaptive-delay formula that produces shorter delays.Eric S. Raymond2015-01-271-4/+2
| | | | All regression tests pass.
* Fix clang's only warning in non-test code, about a cast in the shmexport code.Eric S. Raymond2015-01-271-1/+1
| | | | | | | All regression tests pass with both gcc- and clang-built binaries. One clang warning remains in the JSON test code.
* Fix bug reported on the dev list resulting from NTPSHMSEGS > MAX_DEVICES * 2.Eric S. Raymond2015-01-241-1/+1
| | | | | | As a side effect, simplify configuration slightly. All regression tests pass.
* Guard NTPSHM-related declarationsMatt2015-01-231-2/+2
| | | | | | | | | | | | | | These functions aren't called if ntpshm support is disabled, so there's no need to declare them. Fixes the following warning seen on cygwin with ntpshm disabled: In file included from gpsutils.c:22:0: gpsd.h:1215:80: warning: 'struct shmTime' declared inside parameter list extern int ntpshm_put(struct gps_device_t *, volatile struct shmTime *, struct timedrift_t *); ^ gpsd.h:1215:80: warning: its scope is only this definition or declaration, which is probably not what you want
* Guard includes of termios.h with #ifdef HAVE_TERMIOS_HMatt2015-01-231-0/+2
| | | | | | | | | | | | Guard includes of termios.h with #ifdef HAVE_TERMIOS_H. Test for termios.h in scons, and define/undefine HAVE_TERMIOS_H accordingly. Fixes the below error seen on cygwin, which lacks termios.h: In file included from gpsutils.c:22:0: gpsd.h:349:21: fatal error: termios.h: No such file or directory #include <termios.h> ^
* Introduce an adaptive delay into the main loop to prevent select buzzing.Eric S. Raymond2015-01-221-0/+10
| | | | | | | | | | | When select(2) returns too fast with only small amounts of data, the main loop will buzz and eat power - a significant issue on, e.g. battery-powered RasPi devices, where it was first spotted. This code watches read volume and delays when it sees lots of small bursts. All regressiion tests pass. But note: the adaptive-delay logic has to suppress delays to arrange this, otherwise we get an all too familiar class of spurious test failure.
* More splint cleanup. All regression tests pass.Eric S. Raymond2015-01-211-2/+2
|
* Easy splint cleanups. All regression tests pass.Eric S. Raymond2015-01-211-2/+2
|
* Add compiler.h with compiler specific macros.Zbigniew Chyla2015-01-211-5/+2
| | | | | Use new macros (UNUSED, PRINTF_FUNC) where appropriate. This change doesn't affect generated binary code.
* Refactor the way NTP shared memory segments are addressed.Eric S. Raymond2015-01-131-3/+3
| | | | | | | | | | This is a first step towards removing the NTPSHMSEGS limit. Instead of devices holding two indices into the segment array in the context structure, give them copies of the actual segment pointers and allow ntpshm_put() to take a pointer limit. All regression tests pass.
* Clean STATUS_DGPS_FIX out of the public interface. All regression tests pass.Eric S. Raymond2015-01-131-0/+6
|
* Adding Driver build dependancy NMEA2000 on AVIDMJon Schlueter2015-01-121-0/+3
| | | | | according to Reinhard: It makes no sense to build nmea2000 without ais support.
* Almost entirely eliminate use of sats_used array.Eric S. Raymond2015-01-101-1/+2
| | | | | | | 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.
* Move side effects out of assert()Zbigniew Chyla2015-01-071-1/+5
|
* Fixing endif guard in gpsd.h-tail to match guard levelsJon Schlueter2015-01-071-1/+1
| | | | GARMIN_TEXT was mixed up with NMEA_ENABLED
* GNU libc timegm() turns out to be buggy when DST is on (glibc-2.19).Eric S. Raymond2014-09-281-5/+0
| | | | | | Fortunately, there's a much simpler way to do the computation correctly. All regression tests pass,
* Add scons check for gmtimeMatt2014-09-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 The recent addition of a prototype for gmtime in gpsd.h breaks the cygwin compile. Cygwin has gmtime, so the declarations conflict. Handle this by adding an scons check for gmtime, and make declaration of the bundled version conditional on absence of the system-supplied version. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJUJvXAAAoJECH/phKUbjXCdgwH/RrMznXe51HHR5eLD3Y/vor8 h514XtvlzB/ghWQcAuiWX8mGy/J7k8OJFb8HmUXPAhSuzeiRooZXLz7uk3UvfeGv 4p5MfND3E7FCZVBu9/o9n5gf27wddXKChHVfAZ1MsnusRmwfjAiPoTr0iVoarWLw s/8tjvnHJg4A3i08nu4Y+Z9rwyDqkmB2YPQ0Zs+deCsbK4AA4Lx3oVkgDkVCk7zz vBZPueS6ylAMb1hbEthW3l7St3S2ESLG7nIxwv1lQ0mmAi70pknHeLYbiBLU0QqT A2ZsOOajespqq9/pmxP6ZJcwy8DtNXcj8LvRcNAOrjiV52MQUwTZGLLwVP5WMxk= =PoQy -----END PGP SIGNATURE-----
* Do the right thing if we're not using glibc - use local timegm().Eric S. Raymond2014-09-251-0/+5
| | | | All regression tests pass.
* Refactor representation of satellite data into an array of structs...Eric S. Raymond2014-09-221-0/+1
| | | | | | | | | | | | | | | | | | ...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.
* Complete wrapping of ntpshm_latch function in #ifdef NTPSHM_ENABLESimon Dawson2014-09-041-0/+2
| | | | | | | | | | | | | Currently, the build fails as follows gpsmon.o: In function `gpsmon_hook': gpsmon.c:(.text+0x8b0): undefined reference to `ntpshm_latch' collect2: error: ld returned 1 exit status scons: *** [gpsmon] Error 1 Addresses Sacannah bug #43129: ntpshm patch is incomplete. Signed-off-by: Simon Dawson <spdawson@gmail.com>
* splint/cppcheck cleanuo after the gpsd_report change.Eric S. Raymond2014-08-271-2/+3
| | | | All regression tests pass.
* Now that the transition is done we can restore the gpsd_report name.Eric S. Raymond2014-08-271-8/+8
| | | | All regression tests pass.
* Reverse linkage of gpsd_report() is abolished. All regression tests pass.Eric S. Raymond2014-08-271-4/+3
| | | | Some cleanup and testing is still required.
* All gpsd_reportcalls are gone. Only the unused definitins are left.Eric S. Raymond2014-08-271-1/+1
| | | | | | Next, implement labeled reporting and fix up gpson to do the right thing. All regression tests pass.
* More gpsd_report removal. All regression tests pass.Eric S. Raymond2014-08-271-1/+1
|
* Introduce struct errout_t to encapsulate error-reporting hooks.Eric S. Raymond2014-08-271-5/+11
| | | | | | A major step towards eliminating reverse linkage. All regression tests pass.
* Eliminate gpsd_report() from isgps.c. All regression tests pass.Eric S. Raymond2014-08-271-0/+2
|
* Modify packet.c so it no longer requires gpsd_report().Eric S. Raymond2014-08-271-0/+1
| | | | | | 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.
* Follow throughon a previous name change. No logic changes.Eric S. Raymond2014-08-271-1/+1
| | | | All regression tests pass.
* Structure member name change: packet -> lexer. No logic changes.Eric S. Raymond2014-08-271-12/+12
| | | | All regression tests pass.
* A steo topwrds eliminating the reverse linkage of gpd_report().Eric S. Raymond2014-08-271-1/+2
| | | | All regression tests pass.
* Eliminate reverse linkage of gpsd_write. All regression tests pass.Eric S. Raymond2014-08-261-0/+2
|
* GNSS and GLOSS SKY reoport are now mergedEric S. Raymond2014-08-261-0/+1
| | | | | Fixes Savannah bug #42407: wrong interpretation of NMEA messages for mixed GPS/GLONASS recievers.
* Accumulate GNSS+GLONASS satelite reports.Eric S. Raymond2014-08-251-0/+1
| | | | | This isn't ideal. Wgen a GPS emits both we get two SKY reports per cycle, with the second one cumulative.
* Split firmwqre version query out of the init method.Eric S. Raymond2014-08-251-0/+1
| | | | | | 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.
* Recreare the driver union, curtting per-device storage requirements.Eric S. Raymond2014-08-241-32/+33
| | | | | | | This time, the NMEA privarte storage is outside the union, so mode-switching won't step on stuff. All regression tests pass.
* splint/ccpcheck cleanup.Eric S. Raymond2014-08-241-1/+1
|
* Properly free devices when select() sees bad fds for them.Eric S. Raymond2014-08-241-0/+1
|
* Eliminate the tag field entirely, even internally.Eric S. Raymond2014-08-241-2/+1
| | | | All regression tests pass.
* Drop the obsolete tag field from JSON output. Bump the minor protocol number.Eric S. Raymond2014-08-241-1/+4
| | | | | | | 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.
* Static-analyzer cleanup: splint, cppcheck, coverity all clear.Eric S. Raymond2014-08-221-1/+1
| | | | All regression tests pass.
* Re-integrate Miroslav's support for large PPS offsets.Eric S. Raymond2014-08-221-1/+5
| | | | | | The factoring on this could use some cleanup. All regression tests pass. PPS is live in both gpsd and gpsmon.