1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
COPYRIGHT
=========
This software (gpsd) is Copyrighted 1997, 1998, 1999, 2000, 2001, 2002 by
Remco Treffkorn, I am releasing it under the terms and conditions of the
GNU GENERAL PUBLIC LICENSE Version 2, June 1991
or later. A copy of which is included in the file COPYING.
GENERAL
=======
gpsd is a user land daemon acting as a liason between a gps or
Loran-C receiver and clients. The receiver is expected to generate
position information as NMEA-0183 sentences, or Rockwell binary format,
although that can be changed.
gpsd listens on port 2947 for clients requesting position, time,
velocity or altitude information.
gpsd can take information from the gps and translate it into
something easier to understand for clients.
There is a GPS tester included. It is called "gps". It simply connects
to a GPS and displays your latitude, longitude, altitude, and the signal
quality from visible satellites. When querying NMEA-compliant GPSes, it
will show a diagram of satellites in their current position in the sky.
It uses the same library code as gpsd.
gpsd is tested with DeLorme's TripMate and EarthMate; also with Garmin units;
also with the BU-303 USB GPS sold as the NaviLock, Globalsat, and Hyperdata.
Note that the PL2303 USB serial driver used with the BU-2303 seems
to have been broken sometime late in the 2.4.x series of Linux kernels
and was not fixed until 2.6.7. If in doubt, upgrade.
There is a project site for gpsd at <http://www.berlios/gpsd/>.
Look there for updates, news, and project mailing lists.
CREDITS
=======
nmea_parse.c is modeled after code seen in gpstrans-0.31b by
Carsten Tschach.
Thanks to Bob Lorenzini <hwm@netcom.com> for his testing and feedback.
Thanks goes to Brook Milligan <brook@trillium.NMSU.Edu> for his
efforts to combine gpsd and gpsclient into one package.
He also changed the configuration method from Imake to GNU
autoconf. This made it easy to port the code to YOUR particular
platform.
Derrick J Brashear <shadow@dementia.org> (KB3EGH) added code for the
EarthMate DeLame. He also added "incredibly gross code to output
NMEA sentences" (his own words :-) He also did the first cut at
DGPS support (see http://www.wsrcc.com/wolfgang/gps/dgps-ip.html),
for the Earthmate.
Curt Mills <BowHunter@mail.com> (WE7U) furthered the dgps support,
writing the portion for other GPS receivers.
Be advised: any bugs in this code are mine, and mine only ;-)
This is as it stands today, February 05 2002.
remco@emc.rvt.com
Actually, some bugs may be mine too now. Sorry.
Derrick J. Brashear, 2 January 2000
Or mine. I drastically rewrote this code to clean it up and extend it.
New features include:
* Documentation (what a concept!)
* Cleaned up, simplified command-line options.
* It now understands the GLL (Geographic position - Latitude, Longitude)
sentence from NMEA 3.0.
* It now parses both the NMEA 3.0 and pre-3.0 variants of the VTG sentence
correctly.
* New y command supports satellite location -- it should no longer ever be
necessary for clients to go to raw mode unless they want to monitor and
log the GPS stream.
* New 'w' command toggles 'watcher' mode. In watcher mode gpsd ships
a gpsd-style response for each incoming sentence as if the client
had just sent all commands that asked for data contained in the sentence.
* New 'x' command allows the client to query whether or not the GPS
is on-line.
* Massive refactoring -- one main loop now calls a self-contained
driver object for each type.
* The GPS-bashing code this program uses can now be directly linked as a
library, libgps(3).
* Cleaned-up error reporting, we don't use syslog when running in foreground
but send all error and status messages to the tty instead.
* Added -n option to do batch monitoring of GPSes.
* xgpsspeed is working again.
* RPMs which include installation of gpsd to start up at boot time
are available.
* C and Python libraries are available to encapsulate the client side of
querying gpsd.
Eric S. Raymond, 23 Aug 2004
|