Gypsy - A GPS Multiplexing Daemon
Gypsy is a GPS multiplexing daemon which allows multiple clients to access GPS data from multiple GPS sources concurrently.
Without some sort of multiplexing system, a GPS device can only safely be accessed by one client. In a server situation this may not cause any problems, but on modern desktop which could potentially have multiple location aware devices, this could be an issue.
Gypsy hides the tricky details of parsing NMEA from the client applications, passing the data as simple values for the clients to use.
Gypsy uses D-Bus to notify clients about location changes, sitting on the system bus, issuing signals as the GPS data changes. This design allows clients to only be notified about the changes they care about and ignore the rest. Gypsy has fine grained signals, so a client only interested in position changes will not be woken up for any other changes like, for example, satellite detail changes.
Gypsy is designed to be usable on all manner of systems, from low powered devices (such as Nokia N810 and Openmoko Neo) to regular high powered desktop systems. As the signals it emits are fine grained applications are woken up only when they absolutely need to be, keeping power requirements to a minimum.
Gypsy was designed to fix the numerous design flaws found in GPSD.
Included with Gypsy is libgypsy which is a GObject based C wrapper for the D-Bus API making writing clients very simple, although any language with D-Bus bindings can be used to write a Gypsy client (See simple-gps-python.py in the Gypsy sources for an example written in Python)
The Gypsy daemon is available under version 2 of the GPL. Libgypsy is available under version 2 of the LGPL.
This distinction is made so that the core of Gypsy, the gypsy-daemon program is kept as Free software while it can still be used by proprietary, closed source applications to provide location data.
Gypsy requires the following:
- A C tutorial on using Gypsy to write a simple GPS client
- The libgypsy API documentation
- Devices that are known to work
- Tarball - http://gypsy.freedesktop.org/releases/
- GIT - git clone git://anongit.freedesktop.org/git/gypsy
- Debian - In Debian or at http://debian.o-hand.com
- Fedora - https://admin.fedoraproject.org/pkgdb/packages/name/gypsy -> yum install gypsy
Gypsy uses Bugzilla to track its bugs.