gpsd

{{Short description|GPS daemon for Unix-like systems}}

{{lowercase|title=gpsd}}

{{Infobox software

| name = gpsd

| logo =

| screenshot = Cgps GPSd screenshot.webp

| caption = Screenshot of cgps, a ncurses command-line interface of gpsd

| collapsible =

| author = Remco Treffkorn,
Derrick Brashear

| developer = Eric S. Raymond

| released =

| latest release version = {{wikidata|property|edit|reference|P348}}

| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}

| programming language = C, Python

| operating system = Linux, *BSD, Mac OS X, Android

| platform = Any

| size = ~120K LOC

| language = English

| genre = GPS software

| license = BSD license (2-clause)

| website = {{URL|https://gpsd.gitlab.io/gpsd/}}

}}

gpsd is a computer software program that collects data from a Global Positioning System (GPS) receiver and provides the data via an Internet Protocol (IP) network to potentially multiple client applications in a server-client application architecture. Gpsd may be run as a daemon to operate transparently as a background task of the server. The network interface provides a standardized data format for multiple concurrent client applications, such as Kismet or GPS navigation software.

Gpsd is commonly used on Unix-like operating systems.[http://packages.debian.org/search?keywords=gpsd Debian packages of gpsd][https://admin.fedoraproject.org/pkgdb/acls/name/gpsd Fedora package of gpsd] {{webarchive|url=https://web.archive.org/web/20111002061218/https://admin.fedoraproject.org/pkgdb/acls/name/gpsd |date=2011-10-02 }}[http://www.freebsdsoftware.org/astro/gpsd.html gpsd FreeBSD] from the FreeBSD ports archive It is distributed as free software under the 2-clause BSD license.

Design

gpsd provides a TCP/IP service by binding to port 2947 by default.[http://gpsd.berlios.de/gpsd.html gpsd manual page] {{webarchive|url=https://web.archive.org/web/20110718125612/http://gpsd.berlios.de/gpsd.html |date=2011-07-18 }} gpsd project, retrieved 2011-07-11 It communicates via that socket by accepting commands, and returning results. These commands use a JSON-based syntax and provide JSON responses. Multiple clients can access the service concurrently.

The application supports many types of GPS receivers with connections via serial ports, USB, and Bluetooth. Starting in 2009, gpsd also supports AIS receivers.[http://gpsd.berlios.de/history.html A Brief History of GPSD, "In July and August 2009 ESR redesigned the GPSD command protocol and gave gpsd the ability to read data from marine AIS receivers and pass it to clients."; retrieved 2011-05-01] {{webarchive|url=https://web.archive.org/web/20061014054342/http://gpsd.berlios.de/history.html |date=2006-10-14 }}

gpsd supports interfacing with the Network Time Protocol (NTP) server ntpd via shared memory to enable setting the host platform's time via the GPS clock.

Authors

gpsd was originally written by Remco Treffkorn with Derrick Brashear, then maintained by Russell Nelson.[http://pygps.org/gpsd/CHANGELOG GPSD CHANGELOG] {{webarchive|url=https://web.archive.org/web/20070928120501/http://pygps.org/gpsd/CHANGELOG |date=2007-09-28 }} It is now maintained by Eric S. Raymond.[http://gpsd.berlios.de/history.html GPSD History] {{webarchive|url=https://web.archive.org/web/20061014054342/http://gpsd.berlios.de/history.html |date=2006-10-14 }}[http://thedailywtf.com/Articles/Bad-Code-Offsets-Open-Web-Innovation.aspx Bad Code Offsets: Open Web Innovation]

References

{{Portal|Free and open-source software}}

{{reflist|30em}}