summaryrefslogtreecommitdiff
path: root/packet.c
Commit message (Collapse)AuthorAgeFilesLines
* More trailing whitespace fixups.Gary E. Miller2015-04-301-7/+7
|
* Addresses Savannah bug #44740: More talkers for AIS VDM/VDO.Kurt Schwehr2015-04-061-0/+12
| | | | All regression tests pass.
* Retire splint from our set of static analyzers.Eric S. Raymond2015-03-301-21/+2
| | | | | | | | | | | | | | | | | | | 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.
* gpsd-report() -> gpsd_log()Eric S. Raymond2015-03-071-113/+113
| | | | | | | | | | | | | | | | 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.
* Code to accommodate alternat Beidou talker ID of $GB. Also, add a test for it.Eric S. Raymond2015-03-021-1/+4
| | | | All regression tests pass.
* Update a comment on talker IDs.Eric S. Raymond2015-02-281-0/+1
|
* Full support for Beido and QZSS constellations in NMEA0183 skyviews.Eric S. Raymond2015-02-281-0/+17
| | | | | All regression tests pass. Required one test rebuild for QZNSS; Beidou test added.
* splint cleanup. All regressiion tests pass.Eric S. Raymond2015-02-091-3/+2
|
* In the packet getter, fix an erroneous RTCM2 state transition.Eric S. Raymond2015-02-091-6/+14
| | | | | | This fixes the last case where # EOF was not being recognized. All regression tests pass.
* Implement character pushback and state to ground without packet disposal...Eric S. Raymond2015-02-081-63/+63
| | | | | | | | | | | | | | | | | | | | ...for most packet types. Attempting to make *all* character pushbacks do this breaks the following tests: test/daemon/ac12_binary.log test/daemon/gp-320fw-2019-04-07-coldboot.log test/daemon/naujoks-ntrip.log test/daemon/naujoks-rtcm2.log test/daemon/rtcm2.log test/daemon/triton400.log Someday we should figure out why, but it is not very urgent as the capability is mostly just useful for faster recovery from garbage data on the wire. However, this change does have significant impact on the test framework. It should make recognition of the "# EOF\r\n" token injected by gpsfake reliable even in a binary packet stream.
* Machinery for doing true character pushback without packet disposal.Eric S. Raymond2015-02-081-86/+91
| | | | All regression tests pass.
* Improved instrumentation. All regression tests pass.Eric S. Raymond2015-02-081-6/+13
|
* Improve the ability of the packet analyzer to recognize control comments...Eric S. Raymond2015-02-081-74/+74
| | | | | | | ...including the "# EOF" generated by gpsfake. The case that was sometimes being mishandled was "# EOF" just after a binary packet end. All regression tests pass.
* Refactoring step: make character_pushback take a new-state argument.Eric S. Raymond2015-02-081-40/+26
| | | | All regression tests pass.
* Add YX as a recognized NMEA packet leader. Seen on Airmar PB100.Eric S. Raymond2015-02-051-0/+9
| | | | All regression tests pass.
* Comment typo fix.Eric S. Raymond2015-01-311-1/+1
|
* Add str_starts_with macro, use it instead of strncmp.Zbigniew Chyla2015-01-211-5/+6
| | | | This change doesn't affect generated binary code.
* Adding missing PASSTHROUGH_ENABLE ifdef guards in packet.cJon Schlueter2015-01-081-2/+8
| | | | | | scons passthrough=false was failing on several missing ifdef guards for JSON_LEADER blocks. Added matching ifdef guards to allow it to compile cleanly
* Fix RTCM2 detection in packet.cAhti Heinla2015-01-081-0/+6
| | | | | | | | | | | | | | | | | Regression tests pass. Author's notes: RTCM2 support seems to be practically broken, if the stream frequently includes the 0x40 byte. This byte causes packet.c to temporarily think it is an AT1 stream, and stop calling rtcm2_decode() while it thinks so. I have an RTCM stream from station id 0, and this particular station ID causes the 0x40 byte to appear in virtually every RTCM message, so for that stream, I have to wait through hundreds of RTCM messages before it is positively identified and RTCM decoding starts to work. Patch attached, works for me.
* Silence compiler warnings about array subscripts of type 'char'Matt2014-09-101-3/+3
| | | | | | | | | | | | | | | | | | | | Cygwin GCC complains about code like isprint(c), where c is of type char. The isX() and toX() functions/macros (ISO C allows either) all accept an int, whose value should be either that of an unsigned char, or the special value EOF (== -1). So cast to unsigned char each argument to isprint, tolower, etc. Silences several warnings of the form: gpsutils.c: In function 'safe_atof': gpsutils.c:90:5: warning: array subscript has type 'char' [-Wchar-subscripts] while (isspace(*p)) { ^ gpsutils.c:188:2: warning: array subscript has type 'char' [-Wchar-subscripts] while (isdigit(*p)) { ^
* Fix incorrect comment.Eric S. Raymond2014-09-061-1/+1
|
* Now that the transition is done we can restore the gpsd_report name.Eric S. Raymond2014-08-271-34/+34
| | | | All regression tests pass.
* Introduce struct errout_t to encapsulate error-reporting hooks.Eric S. Raymond2014-08-271-60/+39
| | | | | | 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-1/+1
|
* Modify packet.c so it no longer requires gpsd_report().Eric S. Raymond2014-08-271-34/+56
| | | | | | 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-10/+10
| | | | All regression tests pass.
* Remove some obsolete FIXMEs.Eric S. Raymond2014-08-241-2/+0
|
* Support for some unusual NMEA 4.0 AIS talker IDs.Eric S. Raymond2014-05-201-4/+23
|
* Support for, and documentation of, some unuusual AIS talker IDs.Eric S. Raymond2014-05-161-12/+17
|
* PPS JSON messages are now visible in client-mode JSON.Eric S. Raymond2013-11-171-1/+6
|
* Fix kexer to be able to see JSON after NMEA.Eric S. Raymond2013-11-171-1/+4
| | | | | The fact that this fix was needed mmay indicate a deeper bug in end-of-packet handling.
* u-blox name cleanup. All regression tests pass, PPS is live.Eric S. Raymond2013-11-091-7/+7
|
* Remove code which Coverity correctly calls out as statically dead.Eric S. Raymond2013-11-061-2/+0
|
* Full splint cleanup. Partial cppcheck cleanup.Eric S. Raymond2013-11-051-2/+3
|
* Narrow a variable scope. All regression tests pass.Eric S. Raymond2013-10-171-2/+3
|
* Make all hex-dumping truly thread-safe.Eric S. Raymond2013-10-131-6/+17
|
* Change gpsd_report to no longer use a global. All regression tests pass.Eric S. Raymond2013-09-291-36/+52
| | | | | | | | This is a large, ugly change. But without it we can't troubleshoot the ICP/IP-source initialization bug properly - colliding definitions of gpsd_report() were interfering with error reporting early in gpsd runs. More cleanup work remains to be done, but at least this is working.
* TSIP packet 0x1c has to pass through.Eric S. Raymond2013-09-241-1/+5
|
* Pass through Trimble Accutime Gold bersion info.Eric S. Raymond2013-09-231-3/+9
|
* Deal with the Accutime Gold's known issues. All regression tests pass.Eric S. Raymond2013-09-231-4/+9
|
* More TSIP packet cleanup. All regression tests pass.Eric S. Raymond2013-09-221-3/+3
|
* More TSIP packet recognition cleanup. All regression tests pass.Eric S. Raymond2013-09-221-3/+8
|
* TSIP driver can only use one length of 0x5c packet.Eric S. Raymond2013-09-221-2/+1
| | | | All regression tests pass.
* Remove some comments that belong in the revision history.Eric S. Raymond2013-09-221-11/+1
| | | | | | | | | | | Older versions of the 9x38 check allowed a total packet length of 3, which was almost certainly wrong. Older versions used to allow a data length of 11 for type 0x41; not clear why as the TSIP driver only knows the 10-byte format that [TSIP] describes. All regression tests pass.
* Simplify TSIP satellite-picture packet recognition.Eric S. Raymond2013-09-221-2/+1
| | | | | | | | Previuous versions allowed a data length of up to 27. It's not clear why, as the TSIP reference specifies a length of 25 and that's all the driver can use. All regression tests pass.
* More TSIP packet cleanup. All regression tests pass.Eric S. Raymond2013-09-221-2/+6
|
* More TSIP packet cleanup. All regression tests pass.Eric S. Raymond2013-09-221-4/+7
|
* Begin cleaning up some grubbiness in the packet getter.Eric S. Raymond2013-09-221-23/+39
| | | | All regression tests pass.
* TSIP Double Precision XYZ needs to be passed, as it says in the comment.Eric S. Raymond2013-09-211-0/+2
|