summaryrefslogtreecommitdiff
path: root/driver_nmea2000.c
Commit message (Collapse)AuthorAgeFilesLines
* Address Savannah bug #53621: Invalid JSON generated for an unreadable deviceEric S. Raymond2018-12-261-1/+1
|
* Removed variable length arrays, added -Wvla compiler option.vla-removalIan Bruene2018-11-261-1/+1
|
* LICENSE: Update licenses for consistency. No functional changes.Gary E. Miller2018-11-191-1/+1
|
* driver_nmea2000: Fix too small buffer.Gary E. Miller2018-10-261-1/+1
|
* ATT: centralize clearing of the attitude data.Gary E. Miller2018-09-111-39/+0
| | | | | This showed up a bug where rtcm3_unpack() was not clearing its rtcm3 data, which is a union with the attitude data.
* SPDXify the licerse references.Eric S. Raymond2018-03-081-1/+1
|
* NMEA2000: fix formattting conversion of signed to unsigned and back.Gary E. Miller2017-07-261-3/+3
|
* Explicit marking of ignoring fprintf() resultRobert Norris2017-02-201-7/+7
| | | | | | | | | Ensure consistent marking of '(void)' for most normal usage of fprintf() TESTED: 'scons build-all check' passes Signed-off-by: Fred Wright <fw@fwright.net>
* Fix for C99 and POSIX 2001.Gary E. Miller2016-08-151-2/+2
| | | | | | #define _DEFAULT_SOURC E seems like a hack... http://stackoverflow.com/questions/10433982/why-does-c99-complain-about-storage-sizes#10435860
* I can not figure out why this file will not C99. Punt.Gary E. Miller2016-08-151-1/+5
|
* Coverity cleanup.Eric S. Raymond2016-03-281-1/+1
|
* Move declarations of libgps_debug related functions and definitions.Rob Norris2016-03-081-0/+1
| | | | | | | | | Move from gpsd.h to libgps.h This is the more logical place for this code and removes the dependency of test_libgps.c on gpsd.h Signed-off-by: Jon Schlueter <jon.schlueter@gmail.com>
* Add Coverity suppressions for new invariant checks.Eric S. Raymond2016-01-291-1/+1
|
* Fix time encoding.Reinhard Arlt2015-05-081-0/+1
|
* Handle ais type 4 and type 11 in nmea2000.Reinhard Arlt2015-05-081-0/+35
|
* Basic support for AIS MSG 4 and 11 in NMEA2000.Reinhard Arlt2015-05-071-0/+26
|
* Improve nmea2000 ais coding.Reinhard Arlt2015-05-071-6/+15
|
* Fix char encoding in ais.type7 strings.Reinhard Arlt2015-05-071-6/+28
|
* Fix wrong mask for ais.type1.status.Reinhard Arlt2015-05-071-1/+1
|
* A drowning deluge of whitespace hacks.Gary E. Miller2015-04-301-11/+11
|
* Retire splint from our set of static analyzers.Eric S. Raymond2015-03-301-60/+15
| | | | | | | | | | | | | | | | | | | 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.
* Beat the splint beast into submission.Eric S. Raymond2015-03-291-5/+5
| | | | | | Code splints clean, all regression tests pass, but 1PPS is not being detected and wasn't before this changeset. Debug messages suggest the trailing edge is being rejected.
* Clean up most spint errors. All regression tests pass.Eric S. Raymond2015-03-281-12/+12
|
* Fix more splint: Line expects to suppress X errors, found 0 errorsGary E. Miller2015-03-251-12/+10
|
* NMEA2000 driver was not using a bool where it should.Eric S. Raymond2015-03-161-8/+8
|
* Attempted fix for a close/reopen bug involvinf NMEA2000.Eric S. Raymond2015-03-161-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | This was reported on gosd-users by Vignesh Krishnan <Krishnan_Vignesh@cat.com>: > For the nmea2000 bug . I connect using gpsd control socket > > ./gpsd -n -F /tmp/control_sock > > Adding source is possible > +nmea2000://can1 > > Removing sourc is also possible with > -nmea2000://can1 > > Readding the source is not possible with > +nmea2000://can1 > > This is because the there is an array which stores the list of nmea > devices. That is not cleared on removed. So adding the second time results > in device exist error when actually device does not exist. To address this, the driver close() method tries to zero the proper array location. All regression tests pass.
* gpsd-report() -> gpsd_log()Eric S. Raymond2015-03-071-136/+133
| | | | | | | | | | | | | | | | 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.
* warning hunting of unused parameters in driver_nmea2000.cJon Schlueter2015-02-231-0/+5
| | | | add dummy usage of parameters if function is conditionally compiled out
* Fix another type24 bug in driver_nmea2000.cReinhard Arlt2015-02-181-1/+4
|
* splint cleanup. All regressiion tests pass.Eric S. Raymond2015-02-091-1/+1
|
* Used scale_int() in all places.Reinhard Arlt2015-02-011-6/+6
|
* 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 new scale routine.Reinhard Arlt2015-01-311-2/+15
|
* 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.
* Improved adaptive-delay logic. Don't insert them if CAN devices are in play.Eric S. Raymond2015-01-271-6/+0
| | | | All regression tests pass.
* Pretend CAN devices are pseudo-ttys to disable adaptive delays.Eric S. Raymond2015-01-261-0/+7
| | | | All regression tests pass.
* 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.
* Fix pseudonmea again.Reinhard Arlt2014-12-151-3/+5
|
* Refactor representation of satellite data into an array of structs...Eric S. Raymond2014-09-221-8/+7
| | | | | | | | | | | | | | | | | | ...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.
* Now that the transition is done we can restore the gpsd_report name.Eric S. Raymond2014-08-271-58/+58
| | | | All regression tests pass.
* The big leap. Most instances of gpsd_report are replaced...Eric S. Raymond2014-08-271-58/+58
| | | | | | | | | | | | | | | | ...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-58/+58
| | | | | | 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-15/+15
| | | | All regression tests pass.
* 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.
* Drop the obsolete tag field from JSON output. Bump the minor protocol number.Eric S. Raymond2014-08-241-10/+0
| | | | | | | 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.
* Fix NME2000 AIS Type 24 handling.Reinhard Arlt2014-08-211-4/+4
|
* Remove unused check for workpgn.Reinhard Arlt2014-08-211-6/+1
|
* Rename and rationalize driver table instances. No logic changes.Eric S. Raymond2013-11-121-1/+1
|
* New AIS type24 reporting.Reinhard Arlt2013-11-111-77/+47
|
* Isolate the access to split24 flag.Reinhard Arlt2013-11-101-3/+17
|