| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Part of the move from timestamp_t to timespec_t. The double that
is timestamp_t will soon be too imprecise.
|
|
|
|
| |
Which bumps the JSON minor rev.
|
|
|
|
| |
Add notes as reminder for next change.
|
|
|
|
| |
A few JSON changes this cycle: gnssid:svid added to SAT. time added to ATT
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
|
|
|
| |
...that my TN-200 with firmware 2.3.2 generates those on occasion.
|
|
|
|
|
|
| |
...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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
functional but committed to allow for in-tree development.
|
|
|
|
|
| |
if unspecified, gpsd will retain its current behaviour: dropping to
"nobody".
|
|
|
|
| |
...(notably the TSIP ones). There's a conflict...
|
|
|
|
| |
...though it's still not hooked up to anything in rtcmdecode().
|
|
|
|
|
|
|
| |
...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,
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Teach the daemon to ignore comment packets led with # and ended with \n.
|
|
|
|
| |
Purely cosmetic change, shouldn't even compile different code.
|
|
|
|
| |
problems created by the last big refactoring patch.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a big, super-intrusive patch but changes no logic at all --
it's all about ripping out some of the gps_device_t structure members
into a new gps_packet_t structure. Even the driver API doesn't change
at all, this is all libgpsd(3) internals being rearranged.
The motivation here is that we want to kill off the ad-hoc Python
implementation of a packet-sniffer in gpsfake. To do that we need to
be able to write a "pure" packet sniffer that uses the same C code as
the daemon's but without being welded to the rest of the libgpsd(3)
code. This is the first step towards that.
|
|
|
|
|
| |
This diff makes that happen, and tries to be forthcoming about
when it is making gpsd run as root.
|
|
|
|
| |
...and revert our changes at deactivation time.
|
|
|
|
| |
...the same way probe_subtype does, and for the same reason.
|
|
|
|
|
|
| |
...that causes the driver's mode switcher to be invoked just after the
revert method. This makes the revert methods for SiRF and EverMore
unnecessary.
|
|
|
|
|
| |
...set by an argument to gpsd_active(). Changes the libgpsd(3) API,
but not the client-side one.
|
|
|
|
| |
if configuration is enabled.
|
|
|
|
| |
Also fixes a typo in the previous change.
|
|
|
|
| |
undo switch to SiRF binary on close if driver started in SiRF NMEA.
|
| |
|
|
|
|
|
| |
*immediately* improve detection of SiRF devices in NMEA mode, and probably
solves Davor Emard's Garmin GPS-10 bug as well (though this is not yet proven.
|
|
|
|
|
| |
between our LOG_ERR and the syslog() macro by changing ours to
LOG_ERROR.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch defines a uniform set of log levels and changes all gpsd_report()
instances to use them. In most cases (I'd say about 80%) this will make
no observable difference, as the numeric log levels the code was using were
not too badly inconsistent anyway. The new log level macros are defined
and described in gpsd.h.
The main thing I wanted was to be able to consistently force dumping
of all I/O to devices and clients with -D 4. Some drivers didn't honor
this. One or two still may not through lack of an internal write() wrapper
that does logging; there will need to be some followup changes.
Level 0 messages are always displayed, but to make the semantics clearer
there are two defines LOG_ERR and LOG_SHOUT.
Level 5 is still super-raw I/O reporting. Level 6 and 7 messages are
tagged RAW_LOG+1 and RAW_LOG+2; I was particularly careful about these
because we have one report of a user who is getting good results from
Garmin serial only at -D 7 or up, and perish forbid I should interfere
with that bug being found.
|
|
|
|
|
|
| |
...since we need it in like four places now.
This version splints clean.
|
|
|
|
| |
Now we have saved_baud completely confined to serial.c
|
|
|
|
|
| |
We're trying to hide all instances of saved_baud
preparatory to some logic changes in the serial layer.
|
|
|
|
|
| |
Give serial.c a new entry point so storage for TTY settings can stay
private to serial.c rather than being tweaked in the Garmin driver.
|
| |
|
| |
|