summaryrefslogtreecommitdiff
path: root/driver_sirf.c
Commit message (Collapse)AuthorAgeFilesLines
* Narrow the driver-type-reversion logic a bit. All regression tests pass.Eric S. Raymond2015-03-191-1/+1
|
* One of the float-elimination steps busted something. Revert.Eric S. Raymond2015-03-081-2/+2
|
* A step toards float elimination. No code changes.Eric S. Raymond2015-03-081-2/+2
|
* gpsd-report() -> gpsd_log()Eric S. Raymond2015-03-071-217/+217
| | | | | | | | | | | | | | | | 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.
* Back out the attempt to use VTIME.Eric S. Raymond2015-01-311-1/+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 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.
* Fully initialized fields in some time structures.Eric S. Raymond2015-01-231-2/+5
| | | | This fixes an hour-offset bug due to the tm_isdst member being uninitialized.
* cppcheck cleanup.Eric S. Raymond2015-01-221-2/+1
|
* Coverity/splint cleanup.Eric S. Raymond2015-01-211-0/+6
| | | | | Turned up a bug in where a counter was incremented un the Navcom driver; this required one test rebuild.
* Easy splint cleanups. All regression tests pass.Eric S. Raymond2015-01-211-6/+7
|
* Add str_{,v}appendf, use it everywhere.Zbigniew Chyla2015-01-211-7/+4
| | | | This change doesn't affect generated binary code.
* Almost entirely eliminate use of sats_used array.Eric S. Raymond2015-01-101-5/+1
| | | | | | | 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.
* Revise SiRF driver to be get satellites-used info from the skyview sentence.Eric S. Raymond2015-01-091-18/+25
| | | | | | | | | | | Before, that information was partly coming from the navigation-solution message and being pieced together with related data from svinfo. This way of doing things is more consistent. While this change required a rebuild of four check files, the effects are minor. Fixes don't change, but some generated pseudo-NMEA does and the error modeler can sometimes compute error estimates in cases where the old code could not because of a determinant-zero condition.
* Tweak to ifdef guard for RECONFIGURE_ENABLE in driver_sirfJon Schlueter2015-01-091-1/+1
| | | | | | | Warning cleanup that one of the nav message was not used if RECONFIGURE_ENABLE was not defined. Inspection shows that it is only used from within code guarded by the same ifdef guard so adjusted to clear the compile warning.
* Better way to avoid glibc dependency.Eric S. Raymond2014-09-291-3/+3
| | | | | | | Returns us to something amost identical to the original code. Sigh. Timezones are a swamp. All regression tests pass.
* Remove some custom code, at the cost of introducing a glibc depenency.Eric S. Raymond2014-09-251-2/+2
| | | | Dependency soon to be fixed. All regression tests pass.
* Refactor representation of satellite data into an array of structs...Eric S. Raymond2014-09-221-11/+16
| | | | | | | | | | | | | | | | | | ...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.
* Add some warnings about SiRF-IV flakiness, and remove a related TO-DO item.Eric S. Raymond2014-08-291-0/+7
|
* Now that the transition is done we can restore the gpsd_report name.Eric S. Raymond2014-08-271-89/+89
| | | | All regression tests pass.
* The big leap. Most instances of gpsd_report are replaced...Eric S. Raymond2014-08-271-89/+89
| | | | | | | | | | | | | | | | ...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.
* Introduce struct errout_t to encapsulate error-reporting hooks.Eric S. Raymond2014-08-271-89/+89
| | | | | | A major step towards eliminating reverse linkage. All regression tests pass.
* Structure member name change: packet -> lexer. No logic changes.Eric S. Raymond2014-08-271-6/+6
| | | | All regression tests pass.
* Another step away from reverse linkage. No logic changes.Eric S. Raymond2014-08-271-46/+51
| | | | All regression tests pass.
* Satisfy an order dependency in SiRF initialization.Eric S. Raymond2014-08-271-17/+20
| | | | Follows a tip from Michael Tatarinov.
* Split firmwqre version query out of the init method.Eric S. Raymond2014-08-251-10/+12
| | | | | | 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.
* splint/ccpcheck cleanup.Eric S. Raymond2014-08-241-4/+4
|
* Eliminate the tag field entirely, even internally.Eric S. Raymond2014-08-241-6/+5
| | | | All regression tests pass.
* Drop the obsolete tag field from JSON output. Bump the minor protocol number.Eric S. Raymond2014-08-241-6/+5
| | | | | | | 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.
* Document sSiRF sentence suppressions better.Eric S. Raymond2014-08-211-15/+17
|
* Revert "Remove dodgy sentence-suppresion code in SiRF driver."Eric S. Raymond2014-08-211-0/+6
| | | | Dodgy code turned out to be right after all - just needs documentation.
* Remove dodgy sentence-suppresion code in SiRF driver.Eric S. Raymond2014-08-211-6/+0
| | | | All regression tests pass.
* Turn off GND in SiRF binary mode, as we don't use it.Eric S. Raymond2014-08-201-9/+14
| | | | | | This is in response to a report by Jeff WEoolsey on gpsd-dev indicating that it masy be *required* to turn this off to get accurate time...
* Revert "Constify some storage. All regressions tests pass."Eric S. Raymond2014-08-201-16/+16
| | | | It failed on a live GPS, in the configuration code.
* Constify some storage. All regressions tests pass.Eric S. Raymond2014-08-191-16/+16
|
* Refactor initialization, and again disable wait on ACK.Eric S. Raymond2014-05-191-14/+23
| | | | | With this code, direct-mode gpsmon speed changes work on SiRF II, III, and IV. Direct-mode gpsctl speed changes work on SiRF II and III, fail on SiRF IV.
* Instrument so we can tell when a SiRF control is sent out with ACK pending.Eric S. Raymond2014-05-181-1/+23
|
* Back out my attempt at ACK synchrinization, it fails on SiRF III.Eric S. Raymond2014-05-181-27/+0
|
* Cut down on the sentence mix transmitted from the device.Eric S. Raymond2014-05-181-2/+11
| | | | | | | From a patch by Michael Tatarinov. Does no harm, and may be required for SiRF IV to work. All regressiion tests pass.
* Add timeout on wait-for-ACK to SiRF driver.Eric S. Raymond2013-11-191-5/+18
| | | | Correct initialization observed oon SiRF-III. All regression tests pass.
* Document the SiRF IV issue.Eric S. Raymond2013-11-181-1/+6
|
* Add a warning when a SiRF message send fails.Eric S. Raymond2013-11-181-2/+5
|
* We attempt to count ACKs to avoid pproblems on the SiRF IV.Eric S. Raymond2013-11-181-16/+7
|
* spint annotation fixes. No logic changes.Eric S. Raymond2013-11-181-1/+1
| | | | All regression tests pass, PPS is live.
* Stall SiRF writes the minimum necessary to guarantee a 4-second cooldown.Eric S. Raymond2013-11-181-43/+86
| | | | | Works on a BU-355 (SiRF-III); at least, it gets through the configuration sends with little stalling.
* SiRF now recommends at least 57600 to use nav data.Gary E. Miller2013-11-151-2/+4
|
* More consistent use of SiRF settling time.Gary E. Miller2013-11-151-10/+1
|
* Document en-/dis-able SiRF subframe. remove redundancies.Gary E. Miller2013-11-151-27/+11
|
* Disable MID 64 in SiRF as it floods the stream at 4800Gary E. Miller2013-11-151-0/+6
|
* Collect all the SiRF settling time constants into one define.Gary E. Miller2013-11-151-15/+18
| | | | | Also make it a lot longer than before. The SiRF driver should also be listening for the ACK/NACKs.
* More consistent ise of LOG_PROG.Eric S. Raymond2013-11-121-2/+2
| | | | This logging level is intended to directly explain accompanying I/O messages.