I recently came across a great little project (part of freedesktop.org) called Gypsy. Gypsy is a dbus enabled replacement for gpsd.
My own efforts are writing a GPS daemon are hosted on Google Code. My daemon was written entirely in python and similar to Gypsy published information via dbus. But Gypsy has a number of advantages:
- Support for the garmin protocol
- More complete implementation of NMEA and all DBUS information
- Designed to be efficient for both client and server
- Includes all configuration to run as a DBus service
My only concern was a feature that I had written into my daemon and this was the ability to record an NMEA stream and replay the stream at any time. This becomes very useful when testing client software.
To this end I have written two patches for Gypsy to firstly add support for TCP and secondly add support for writing a time delta to the NMEA logs output by Gypsy as well as providing a Python tool for replaying these logs via a TCP socket.
The patches have been submitted to the Gypsy dev’s or can be fetched from the Freedesktop bugzilla.
Update: after feedback from the gypsy maintainers I have updated my patch to simply record a delta to the log file. As of Gypsy 0.8 gypsy can now read from a named pipe the patch also includes a python script that can be used to replay the log.