| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
| |
that is, it can connect to and relay data from other gpsd
instances. Sample usage
# gpsd -S 12000 -n 'gpsd://localhost:2947/?raw'
# cgps 127.0.0.1:12000
|
| |
|
| |
|
|
|
|
|
|
|
| |
This required moving one field, the modifiable cycle time, into the
session structure; the driver type field is now the default value set
on switching to that driver, if the field has not already been set
during a previous activation.
|
| |
|
| |
|
| |
|
|
|
|
| |
buffers that might flush it.
|
| |
|
|
|
|
|
|
|
|
| |
...and copying ascii strings around when they're not going to be printed.
This saves quite a lot of CPU. I processed a 50MB ubx binary file. With
no "-D" options, this saved nearly 2.2M calls to gpsd_hexdump and the
processing time for this file went from 84 seconds to 35 seconds.
|
| |
|
| |
|
|
|
|
| |
Found by John Arthur <lists@davey.net.au>
|
|
|
|
| |
killing problems I have been seeing. Thanks to John Arthur <lists@davey.net.au>.
|
|
|
|
| |
Add corresponding entries to the hardware table where we can.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Extract the code which activates the interface to ntpd
into a separate function and arrange that this is called
by gpsd_assert_sync (in serial.c). This ensures it only
happens once the serial port parameters are known.
Modify the code which probes for devices to issue a
gpsd_assert_sync on success.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
serial.c
Set a definite unused value to the NTPD shared memory segment number
stored in device data when a device is allocated.
gpsd.c
Resolved a resource release problem in gpsd.c which left NTPD shared
memory segments hanging if a device disconnected. Corrected by
modifying the order in which the releases happen.
|
|
|
|
|
|
|
| |
Note that the implementation is now somewhat different. Before, this
flag prevented low-level writes to the device. Now it prevents operations
that could *cause* low-level writes -- notably subtype probes, mode
changes, and baud-rate changes.
|
| |
|
|
|
|
|
| |
it actually makes more sense this way. (Fixes what may have been a
subtle bug.)
|
|
|
|
|
| |
Don't even bother trying the write() if device_readonly is set. Saves
me from having to see writes return -1 in ktrace output.
|
| |
|
|
|
|
|
|
| |
Rename the readonly flag, change type. Also, bump the library version
number. So much has changed that it's not fair to call it v16.0 any
more.
|
|
|
|
| |
now it really does work "like it says on the tin."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...to prevent gpsd from writing to a device. It sucks that we have to
do this, but I'm really sick of explaining to people that gpsd is not
to blame for the crap being sold as a bluetooth device these days.
This is user-friendly and packager-friendly: users can now run gpsd on an
arbitrary device without fear of wrecking it, and packagers do not need to
produce special "--disable-reconfigure" packages.
In a perfect world
* embedded bluetooth stacks would not be flaky and fragile
* there would be a reliable, cross-platform way to detect a
bluetooth device, in order to optimize runtime behaviour.
I don't see either of these happening any time soon...
|
| |
|
|
|
|
| |
pipes, sockets and files are opened read-only.
|
|
|
|
|
|
| |
... my itrax3 likes to run that fast, and for more verbose
applications (raw data, ephemeris, ...) it's probably important for
UBX as well.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
pretty smart, and can probably cope with arbitrary byte streams that strongly
resemble gps data, even if it can't exert control over the source.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...from within gpsd_open() out into its only caller, gpsd_activate().
This cleans up the layer separation between serial-device bashing and
the driver-structure stuff.
The reeason for this change is that I want all the configurator and revert
method calls close to each other in libgpsd_core.c so a reader can have
some hope of grokking the interactions correctly. Petr Slansky thinks
there's a subtle bug in the current design, and I think he may be right.
Heads up, Gary! Presently, the only driver this change could break is Garmin,
as you're the only user of the probe_detect hook. I've changed gpsd_set_raw(),
of which you are also the only user, in what I believe is the correct way.
Test it, please...
|
|
|
|
|
| |
*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.
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
There is now a new method, "configurator". The initializer method
probes the driver for subtype information (such as a firmware rev)
without changing any device settings. The configurator method does
things like selecting which packets should send.
At the moment, these two methods are always called in tandem, so there
has been effectively no change in behavior. Soon, though, gpsctrl
will call the initializer method but *not* the configurator.
|
| |
|
|
|
|
|
|
|
|
| |
with FCS. Fortunately, lesstif seems to be a drop-in replacement; all this
took was installing lesstif-devel and changing the BuildRequre in the
spec file.
Also, fix a reveresed test in my True North patch of earlier today.
|
|
|
|
|
|
| |
...for those who want to build their own apps linked against libgps and
want the headers to work. Works on OpenBSD, tested by Jeff Francis on
OS X and Linux
|
|
|
|
|
|
|
|
|
|
| |
If we don't already know the type of a device, we have to send it
*every* driver's wakeups on a baud-rate change. This does, basically,
the same thing the old probe function in the TrueNorth driver did
since at the moment only that driver has a wakeup.
Also, move the send so it gets done when we change baud rates without
closing the device.
|
|
|
|
|
|
|
|
|
|
| |
...a function to be called just after the autobaud hunt sets the line
speed each time. Use this to get rid of the internal baud hunt loop
in the True North driver; instead, the ID query and rate-setting
strings will be sent by the wakeup hook.
Note: this patch is untested. I'm pretty certain it will work, but
somebody needs to try it on live hardware.
|