gpsd is a service daemon that monitors one or more GPSes attached to a host computer through serial or USB ports, making all data on the location/course/velocity of the sensors available to be queried on TCP port 2947 of the host computer.
With gpsd, multiple GPS client applications (such as navigational and wardriving software) can share access to GPSes without contention or loss of data.
Also, gpsd responds to queries with a format that is substantially easier to parse than the NMEA 0183 emitted by most GPSes.
The gpsd distribution includes a linkable C service library, a C++ wrapper class, and a Python module that developers of gpsd-aware applications can use to encapsulate all communication with gpsd.
Besides gpsd itself, the project provides auxiliary tools for diagnostic monitoring and profiling of GPSes and feeding GPS-aware applications specified track data for diagnostic purposes.
The goal of the gpsd project is to create a solid layer of open-source infrastructure for programs running under Linux and other open-source Unixes that want to be location-sensitive.
We aim for simple, robust interfaces, unfussy operation, and an easy learning curve for application developers. Applications that presently use gpsd include pyGPS, Kismet, GPSdrive, gpeGPS, position and roadmap.
What's New in This Release:
· Many changes were made, perhaps the most obvious being the switch from the GPL to the BSD license to facilitate commercial use.
· Drivers have been updated.
· Regular regression testing and automated audits with valgrind, splint, and code analyzers are performed.
· Unbounded string functions have been eliminated.
· Performance and reliability is improved.
· New optimizations were made for embedded deployments.
· Higher integrity data handling was implemented.
· New client programs have been added.
· The gpsd on-the-wire protocol has changed; hand-rolled parsers should be verified against the documentation.