summaryrefslogtreecommitdiff
path: root/gpsd.h
Commit message (Collapse)AuthorAgeFilesLines
* gpsd.h: add ubx.iTOW and ubx.last_iTOW. No functional changes.Gary E. Miller2019-04-221-0/+3
| | | | | | These will be used for u-blox cycle detection. iTOW will change even if the GPS has not determeined UTC yet. fTOW adjusts the extact time of the fix, but is not to be used in cycle checking.
* gpsd.h: Add last_gsv_sigid for GSV state tracking.Gary E. Miller2019-04-191-3/+8
|
* net_ntrip: Pretend we understand RTCM 3.3Gary E. Miller2019-04-181-0/+1
| | | | 100% untested.
* gpsd.h: MAX_PACKET_LENGTH 516 -> 9216Gary E. Miller2019-04-141-1/+3
| | | | | | | The u-blox UBX-RXM-RAWX packet can be 8214 bytes long! Round up to 1024 * 9. This should not have been failing silently... Surprise, this fixes a problem in the NEO-M9P regression...
* driver_ubx: Working cycle end detection.Gary E. Miller2019-04-131-3/+4
| | | | | | | This should force output when people program their u-blox in strange ways. The obvious effect on the regressions is just extra TPV output. Need to improve the cycle detection a bit more to prevent that.
* ubxtool: Add end of cycle detection.Gary E. Miller2019-04-121-3/+3
| | | | | This made the ublox-neo-m8n.log regression finally look good. Needed for u-blox 9.
* driver_ubx: Add ubx.protver, and more, to gps_device_t.Gary E. Miller2019-04-121-0/+4
| | | | | The protocol version will be needed for future configuration operations. The cycle enders will be used soon.
* gpsd.h: Make subtype longer for ZED-F9Gary E. Miller2019-04-111-1/+3
|
* driver_ubx: Stop computing epx/epy, let gpsd_error_model() do it.Gary E. Miller2019-03-261-8/+0
| | | | Oddly, no regressions changed...
* Fix fencepost errors in GPS epoch (mainly comments).Fred Wright2019-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | The definition of GPS_EPOCH in gpsd.h is correct, but the comment specified the incorrect corresponding date, which is 06-Jan-1980, not 06-Jan-1981, which isn't even a Sunday. The century hack in driver_nmea0183.c establishes a 100-year window for interpreting two-digit years. For now, the range 1980-2079 is reasonable, given that the GPS epoch is 06-Jan-1980, and the mention of wrapping "at" 2080 is consistent with this, but the comment incorrectly placed the GPS epoch in 1981 (perhaps due to believing the wrong comment in gpsd.h), and the code was written to wrap *after* 2080, rather than *at* 2080. This would place the window at 1981-2080, which would screw up 1980 (admittedly an unlikely case). This is mostly about not misleading people reading the code than actual real-life trouble. TESTED: Existing tests pass. A test case for a year of "80" would be needed to actually verify the fix, though.
* gpsd.h: Adds missing include for fd_set.Fred Wright2019-03-181-2/+4
| | | | | | | | | | For some reason this was only causing trouble on OpenBSD. TESTED: (With subsequent fixes included) Ran "build-all check" on Mac Pro 10.9, Mac Pro 10.14, MacBook Pro 10.9, PowerBook 10.5, VMs for OSX 10.5-10.13, Ubuntu 14.04, CentOS 7, Fedora 25, FreeBSD 10.3, OpenBSD 5.6, OpenBSD 5.6 32-bit, NetBSD 6.1.5, and Beaglebone (arm) Debian 7.
* driver_nmea0183: Fix 32/64 bug in cycle enders.Gary E. Miller2019-03-181-2/+2
| | | | | | Long standing bug, that became obvious when more NMEA decodes were added. A 32 bit mask used to index into a 40 member array.o Also fix over agressive mode setting on $PSRFEPE.
* driver_nmea0183: Another place ss.ss -> ss.sssGary E. Miller2019-03-151-2/+2
| | | | Oh, and fix missing decimal point.
* Change NMEA mode setting, thus major changes in gpsd_error_model().Gary E. Miller2019-03-071-0/+2
| | | | | | | | | | | | | | | | The start of this overly large patch was to simply move the test for MODE_2D/3D flipping, which only affect NMEA 183, back into driver_nmea0813.c But that was intertwined with how gpsd_error_model() computes derived variables, which required major changes to how NMEA 183 mode_2D/3D are set. This ultimatly led to major regression test results. Almost all for the better. I tried to break it up, but moving from one paradigm to another needed one big jump...
* driver_nmea0183: Fix SiRFstarV in NMEA mode with last_gga_talkerGary E. Miller2019-02-041-0/+1
| | | | NMEA just keeps getting uglier and uglier...
* gpsd.h: Make cfg_step and cfg_stage part of session.Gary E. Miller2019-01-241-3/+5
| | | | | The SiRFstar step type init will get used on other drivers that now have similar buffer stuffing issues.
* nanowait(): move prototupe from gpsd.h to timespec.hGary E. Miller2018-12-271-2/+0
| | | | Any client can include timespec.h, clients do not include gpsd.h
* Factor most uses of pselect(2) into a new utility function named 'nanowait'.Eric S. Raymond2018-12-271-0/+2
| | | | | Also, remove sime header inclusions discovered to be unnecessary during the change.
* GREIS: Add decodes for [RC] and [PC]Gary E. Miller2018-11-101-0/+2
| | | | Pseudo-range and carrier phase.
* timebase: Add gpsd_gpstime_resolv(), deprecate gpsd_gpstime_resolve()Gary E. Miller2018-10-261-0/+2
| | | | | Part of the move from timestamp_t to timespec_t. The double that is timestamp_t will soon be too imprecise.
* Add RAW json messaage class for raw measurements.Gary E. Miller2018-10-241-1/+2
| | | | Which bumps the JSON minor rev.
* Versions in C and Python were out of sync.Gary E. Miller2018-10-011-2/+3
| | | | Add notes as reminder for next change.
* gpsd.h: bump GPSD_PROTO_MINOR_VERSION to 13Gary E. Miller2018-10-011-1/+3
| | | | A few JSON changes this cycle: gnssid:svid added to SAT. time added to ATT
* subtype: Make subtype string buffer longer.Gary E. Miller2018-09-111-1/+1
| | | | | | The navcom driver could overflow subtype. This is an incompatible change to the size of devconfig_t. But API version already changed this dev cycle.
* Add GREIS (Javad) GPS driver.Gregory Fong2018-07-291-7/+33
| | | | | | | | | | | | All functional changes inside "#ifdef GREIS_ENABLE" Includes new regression tests. All regressions tests pass. Developed by Gregory Fong, with help and support from Virgin Orbit. Signed-off-by: Gary E. Miller <gem@rellim.com>
* Support Galileo $GA... talkers and fix a couple of $GB casesChris Lawrence2018-06-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | Now that the Galileo constellation is live, the NMEA 4.1 standard appears to have standardized on the "$GA..." prefix for Galileo-specific messages. The lexer currently filters these out; this patch ensures they go through to e.g. gpspipe -r. (I tore my hair out for days trying to figure out why these were not being passed through even though I could see them using screen etc.) Also added logic to the GSA and GSV message parsing to account for the Galileo messages. It probably needs more work to match up satellite numbers between the GSA and GSV messages and to account for the GNSS type field in NMEA 4.1, but it's a start at least. I also fixed a couple of situations where the 'GB' prefix was being ignored even though 'BD' was not. This leads to a regression in test/daemon/beidou-gb.log, but the "regression" is actually incorrect old behavior (JSON messages omitting BeiDou satellites) exposed by the patch. Signed-off-by: Gary E. Miller <gem@rellim.com>
* SPDXify the licerse references.Eric S. Raymond2018-03-081-1/+1
|
* Fixes broken 'GPSD' SHM export.Fred Wright2017-03-241-0/+1
| | | | | | | | | | | | | | | | | Commit 22c3faf added an IPC_RMID operation right after the shmat(), in order to keep the segment from lingering after gpsd exits. But this clears the key, making it impossible for a client to attach to the segment. This fix moves the IPC_RMID to shm_release(), so that it's not invoked until gpsd is done with the segment. This required saving the shmid in the gps_context structure. TESTED: On both OSX and Linux, used ipcs to verify that the segment is present with the correct ID while gpsd is running, and disappears after gpsd exits. Also verified that warning message for shmctl() appears when two gpsds conflict over the SHM segment.
* Windows libgps supportRobert Norris2017-02-171-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Windows versions for network functions and disable unused features. Add detection of various headers and functions that aren't available in Windows. Note that netlib_localsocket() has no functional implementation on Windows, but it isn't to be used on that platform and it's not part of libgps anyway. Using send() rather than write() seems to work on Windows. For Windows need to ensure networking is initialised on opening of sockets (and then correspondingly shutdown upon closing). Note that within gpsd.h the termios structures and serial related functions are removed from the Windows build. These are only accessed in serial.c by gpsd, so since the Windows build is only generating libgps there is currently no need to modify serial.c. And for os_compat.h, daemon() is simply disabled under Windows as it's not used within libgps. TESTED: Confirmed compiles under a cross compiler. Manual build and run of test_libgps on Windows which successfully connects to a host running GPSD Manual build DLL version and link with a Windows version of a program (Viking) that then successfully connects and monitors positions from GPSD Otherwise no effect on current supported systems. 'scons build-all check' - passes. Signed-off-by: Fred Wright <fw@fwright.net>
* Fixes some issues with C++11.Fred Wright2017-01-241-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | In compiler.h, it adds the missing "std::" namespace prefixes to the memory_barrier() definition. In gpsd.h it: 1) Moves the include of compiler.h outside the conditional 'extern "C"', since the "atomic" stuff in the former is incompatible with the latter. 2) Fixes DEVICEHOOKPATH for C++11 (C++11 requires spaces between literals and string macros). 3) Cleans up some ordering of system includes left over from the former head/tail setup. TESTED: Ran "scons build-all check" on OSX 10.5-10.12, Ubuntu 14, CentOS 7, Fedora 25, FreeBSD 10.3, OpenBSD 5.6 (32- and 64-bit), and NetBSD 6.1.5. Also tested Qt builds with OSX 10.9 (Qt4 and Qt5), OSX 10.12 (Qt5), and Fedora 25 (Qt5). Observed the correct DEVICEHOOKPATH in the log on OSX.
* Eliminates autogeneration of gpsd.h.Fred Wright2017-01-241-0/+1003
| | | | | | | | | | | The reason for directly including the contents of gpsd_config.h in gpsd.h is long gone, so there's no longer any reason to create the latter by concatenation rather than just making it a normal header which #includes gpsd_config.h. This is a minimal rework of this form. TESTED: Ran "scons build-all check" on OSX 10.9 and Fedora 25 (without Qt in the latter case, where the Qt build needs further work).
* Generate gpsd.h so it will contain all relevant configure switches.Eric S. Raymond2007-03-261-458/+0
|
* First step of a layering fix: move the private ldisc member to gpsd.h.Eric S. Raymond2007-03-261-0/+3
|
* Document the fact that the reason we accept oversized NMEA sentences is...Chris Kuethe2007-03-141-0/+1
| | | | ...that my TN-200 with firmware 2.3.2 generates those on occasion.
* While NMEA lines shouldn't be more than 82 characters, one of my receivers...Chris Kuethe2007-03-141-1/+1
| | | | | | ...is currenly emitting 84 character lines. The data is meaningful, the checksum is correct, I think someone just got a format string wrong. GPSD is throwing away usable data.
* Better error modelling. Chris Kuethe2007-01-271-2/+1
| | | | | | | | | Each fix updates the error estimates using the generic model unless the driver provides a better error model. This means that we use the old generic model for most of our drivers, but some devices provide their own error estimates - if so, we'll use those instead. Original diff from Diego Berge, with some corrections from me.
* having both enable-italk and enable-itrax is dumb. Chris Kuethe2006-12-281-7/+9
| | | | | | | now, all itrax features (including italk and $PFST) shall be controlled with enable-itrax. obviously i'm hacking on italk again, so make the italk driver compile again.
* magic to make the UBX SVINFO message parseChris Kuethe2006-12-271-3/+3
|
* The start of a UBX driver, from Andreas Stricker. Not yetChris Kuethe2006-12-151-1/+22
| | | | functional but committed to allow for in-tree development.
* add a --enable-gpsd-user configure option. Chris Kuethe2006-12-151-3/+0
| | | | | if unspecified, gpsd will retain its current behaviour: dropping to "nobody".
* Diego Burge's driver builds, but it messes up some regression tests...Eric S. Raymond2006-12-151-0/+2
| | | | ...(notably the TSIP ones). There's a conflict...
* Make the code for Magnavox-format output work again...Eric S. Raymond2006-12-041-0/+4
| | | | ...though it's still not hooked up to anything in rtcmdecode().
* Change the way the RTCM decoding is layered... Eric S. Raymond2006-12-041-5/+3
| | | | | | | ...so the packet sniffer no longer needs to take an argument that is an rtcm structure. This is a step towards a new and better gpsfake. No logic or protocol changes. All regression tests pass,
* Hide an RTCM detail better. No logic changes. All regression tests pass.Eric S. Raymond2006-12-031-1/+0
|
* This is a try at re-merging my changes.Eric S. Raymond2006-12-011-89/+112
|
* Move some includes around and protect them properly.Chris Kuethe2006-12-011-8/+5
|
* Chris's build broke after my attempt to clean up gpsd.h on 30 Nov 2006.Eric S. Raymond2006-12-011-111/+108
| | | | | | | | | The 'cosmetic rearrangement' appears to have busted something on his system only. Restore the previous version, but with COMMENT_PACKET added. Later: yes, this worked around the problem. Now we get to figure out what broke his toolchain.
* Fix ALLOW_RECONFIGURE compilation.Eric S. Raymond2006-12-011-8/+9
| | | | Teach the daemon to ignore comment packets led with # and ended with \n.
* Separate the packet-level stuff from the rest of the library declarations.Eric S. Raymond2006-11-301-108/+111
| | | | Purely cosmetic change, shouldn't even compile different code.
* Check in regress-builder, after having used it to detect some minor buildEric S. Raymond2006-11-301-2/+2
| | | | problems created by the last big refactoring patch.