summaryrefslogtreecommitdiff
path: root/gps.h
Commit message (Collapse)AuthorAgeFilesLines
* More partial splint cleanup.Eric S. Raymond2010-12-081-1/+3
|
* Enhance the earth-distance() function to compute initial and final bearings...Gleb Smirnoff2010-10-231-0/+1
| | | | | | ...renaming it and still supporting the old entry point. Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
* Grab some headroom for future expansion.Eric S. Raymond2010-07-141-0/+1
|
* Move the buffer and waiting members from privdata to gpsdata, sinceEric S. Raymond2010-07-141-0/+5
| | | | they always have to be there when a device is active anyway.
* First round of changes for API major version 5:Eric S. Raymond2010-07-131-3/+3
| | | | | * gps_open() becomes reentrant, what gps_open_r() used to be. * gps_poll() is removed in favor of gps_read().
* Bump maximum channel count to 32. Eric S. Raymond2010-07-131-3/+4
| | | | | | | | | This is in order to accommodate devices that can do GLONASS; requires a library-major-version bump. Required a rebuild of two regression tests duee to the change in the number of GSA fields dumped in pseudo-NMEA output. Other than that, all regression tests pass.
* Introduce the gps_read() entry point and use it internally.Eric S. Raymond2010-06-081-0/+1
| | | | | | This is as per the roadmap. Clients can still use gps_poll(). All regression tests pass. Clients run correectly live.
* Splint cleanup. All regression tests pass.Eric S. Raymond2010-06-081-2/+2
|
* Use re-entrant open in the C examples.Eric S. Raymond2010-06-071-1/+1
| | | | | | In the next mahor API change the non-re-rentrant call will go away. All regression tests passm, code splints clean.
* In AIS message types 6 and 8, split app_id into DAC and FID per ITU-1371.Eric S. Raymond2010-05-101-3/+9
| | | | | | | | | | | | Wire protocol and API minor versions get bumped. All changes are as documented in AIVDM.txt, which now describes known message 6 and 8 subtypes. Involved rebuilding a couple of AIS regression tests. All regression tests pass. Also includes various typo fixes for AIVDM.txt discovered by Baylink while we were reviewing these changes.
* Change the value of the (never shipped) ATTITUDE_SET flag.Eric S. Raymond2010-04-161-2/+1
| | | | | | | Strictly cosmetic, but I wouldn't have gotten to do it after 2.93 without breaking binary compatibility. All regression tests pass.
* Remove unused library support for old-protocol responses other than FIOXY.Eric S. Raymond2010-04-151-1/+1
| | | | | | | | | | | | | The non-deprecated library entry points can only send 'W' and 'R", so library users can only see the responses that can occur in a 'W' stream (FIOXY). Thus, the code for the old single-shot responses (ABCDEKMNPQSTUV) is dead and can be removed. This change allows us to reclaim a client-side mask bit previously used by the 'E' command. Users were first warned against relying on these responses in 2005. Anybody who had been using them since since was asking for trouble.
* Shorten some names for concision, and make C names match JSON names.Eric S. Raymond2010-04-111-9/+9
| | | | All regression tests pass.
* Improve and dicument the JSON report for digital compasses.Eric S. Raymond2010-04-111-6/+7
|
* First cut at JSON output for TNT Revolution device.Eric S. Raymond2010-04-101-5/+4
| | | | | Not yet documented, but now we at least have a regression test. All regression tests pass.
* Fix the broken handling of our two compass device types in the NMEA driver.Eric S. Raymond2010-04-101-2/+10
| | | | | | | | | | | | It could never have worked right because there was no mask flag to tell a caller that the compass data was valid. TNT has been broken for years; why we never got any complaints about the Oceanserver is more of a mystery. Since it was all broken anyway I renamed and cleaned up that substructure in the union. Nothing fills in the "yaw" slots yet with anything but NaN, but it's got pitch and roll, so... All regression tests pass.
* Make the client library and daemon use different sets of state-flag masks.Eric S. Raymond2010-04-091-6/+3
| | | | | | | | | | | | | | | | | Large patch, no actual executable code changes except in three debug dumpers. Breaks up the *_SET status macros so the client side continues to use them, but the daemon uses a similarly-named set with an _IS suffix. This frees up two mask bits in both sets - the client side no longer needs to have REPORT_SET and CLEAR_SET bits, and the daemon side no longer needs to have VERSION_SET and POLICY_SET. The only actual code change is that the maskdump.c module, generated by maskaudit.py, splits in half - one child now dumps client-side flags, the other daemon-side flags. One other function call in a debug dumper in libgps_core.c changes. All regression tests pass.
* Another cosmetic tweak.Eric S. Raymond2010-04-081-3/+2
|
* Bug fix needed for gps_stream(WATCH_DISABLE...) to work.Eric S. Raymond2010-04-081-1/+1
|
* Cosmetic changes. All regression tests pass.Eric S. Raymond2010-04-081-37/+39
|
* Safety patch suggested by Jon Schlueter.Eric S. Raymond2010-03-311-1/+1
|
* Internals of Qt support.Chris Browet2010-03-311-0/+8
| | | | | | | | | | | | | | | | | All regression tests pass. Note from esr: this feature cannot be announced yert, as it requires documentation in the INSTALL file. 1. What the target environments are (Linux? Windows? Both) 2. All build prerequisites (C++ compiler? Qt library? Other libraries?) 3. What the new files libQgpsmm_global.h and libQgpsmm.pro are for, and how the are used. We also need to know how to regression-test this code under Linux so we can verify that it's not broken as the client library evolves. Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
* Dead-code removal.Eric S. Raymond2010-03-231-1/+0
|
* Vanish away Id and Rev $ keywords, git won't expand them to anything useful.Eric S. Raymond2010-03-131-2/+1
|
* Copyright stamps everywhere. No code changes.Eric S. Raymond2010-03-111-1/+5
|
* Use the Vincenty formula rather than the Haversine formula for earth_distance.Chris Kuethe2010-02-271-0/+3
| | | | | | | Vincenty is much better behaved with small distances. This is a translation of http://www.movable-type.co.uk/scripts/latlong-vincenty.html While I'm here, put a couple of WGS84 constants into a header.
* Improved handling and documentation of AIS type 22 messages.Eric S. Raymond2010-01-301-5/+13
|
* David Ludlow's housekeeping and type-cleanup patch.Eric S. Raymond2010-01-021-175/+175
| | | | All regression tests pass,
* Declare socket-valued ints as socket_t.Eric S. Raymond2009-12-311-1/+9
|
* Bump major API version. Seems I managed to forget to do this since 2.39.Eric S. Raymond2009-12-241-6/+1
|
* Support for AIS type 25 and 26 messages.Eric S. Raymond2009-12-191-0/+21
|
* Arrgh. I confused ERR_SET with ERROR_SET in a couple of places.Eric S. Raymond2009-12-181-1/+0
| | | | | | | | | ERR_SET is now gone entirely, so in the extremely unlikely even that an app developer got caught by this (could never happen unless they shipped a bad command via the deprecated gps_send() entry point) the code will break noisily. All regression tests pass.
* Fix AIS dumping of altitude and speed in SAR report.Eric S. Raymond2009-12-181-1/+3
|
* Add POLL_NONBLOCK flag to the C API. Document all flags.Eric S. Raymond2009-12-091-0/+1
|
* Document the new async-read behavior.Eric S. Raymond2009-12-091-1/+1
|
* Introduce new argunent WATCH_DEVICE to the stream-option-control entry point... Eric S. Raymond2009-12-061-10/+13
| | | | | | ...of the C/C++ and Python APIs. When present, the previously unused second argument is interpreted as a filename and the gemerted WATCH command includes a corresponding DEVICE clause.
* Add non-blocking check for data waiting from the daemon to the C and C++ APIs.Eric S. Raymond2009-12-051-0/+1
|
* Change the library private data member to void *...Eric S. Raymond2009-12-031-5/+4
| | | | | | ...in case we ever want to hang an opaque state structure off it. Currently it's used only as a flag indicating whether user has seen JSON yet. All regression tests pass.
* Introduce ENABLE_RARE flag for gps_STREAM(); gpspipe() will need it.Eric S. Raymond2009-12-031-4/+5
| | | | All regression tests pass.
* gpspipe exposed an orthogonality failure.Eric S. Raymond2009-12-031-10/+12
| | | | | | | | | | | | Fix it by adding a json switch separate from watch enable. This involved moving where fake NMEA is generated to a different place, treating it as just another form of report generation rather than a side effect of receiving a sentence. Also, some client-side code had to be changed to use the json flag. A side effect is that some binary-protocol devicers generate fake $GPGSA sentences somewhat more often than they used to, and this meant rebuilding four more regression tests.
* Thread-hook support and documentation removed.Eric S. Raymond2009-11-291-3/+0
|
* Corrections to the AIS specification, and one fieldname.Eric S. Raymond2009-11-261-1/+1
|
* Remove incorrect comment.Eric S. Raymond2009-11-201-1/+1
|
* Client library debugging can now nbe enabled at runtime.Eric S. Raymond2009-11-201-0/+2
| | | | | That is, if the CLIENTDEBUG_ENABLE feature switch is on. All regression tests pass.
* Work around, and document, a subtle limitation of libgps.Eric S. Raymond2009-11-191-2/+3
|
* Keep validity flags for the client-side union in a valid state.Eric S. Raymond2009-11-181-2/+3
| | | | | Ensure that when libgps updates any member of the union, the validity flags for others are cleared.
* Comment fix.Eric S. Raymond2009-11-171-1/+1
|
* Comment typo fix.Eric S. Raymond2009-11-121-1/+1
|
* The new instrumentation pays off. Eric S. Raymond2009-10-021-1/+3
| | | | | | | On NMEA devices, mode could sometimes be held across cycles when it shouldn't have been. Fix this, simplifying how cycles are tracked in the process. Some regression tests needed rebuilding. Code splints clean.
* Clear up some driver-level confusion surrounding timestamp setting.Eric S. Raymond2009-10-011-1/+1
| | | | | | | | There was lots of duplicative setting of gpsdata.fix.time and gpsdata.sentence_time. The latter is now gone. The only case the sentence_time member was actually used for was timestamping skyviews; a new gpsdata.skyview_time now handles that, and all drivers set it properly.