xgps accepts an -h option that displays a usage message, or a -v option to dump the package version and exit.
This program may be run in either of two modes, as a client for the gpsd daemon (and its associated control socket) or directly connected to a specified serial device. When run with no argument, it attempts to connect to the daemon. If the argument looks like a server:port specification it will also attempt to connect to the daemon. If the argument looks like a bare server name it will attempt to connect to a daemon running on the default gpsd port on that server. Only if the device argument contains slashes but no colons will it be treated as a serial device for direct connection. In direct-connect mode sirfmon will hunt for a correct baud rate and lock on to it automatically.
The -F option is only valid in client mode; it specifies a control socket to which the program should send device control strings. You must specify a valid pathname of a Unix-domain socket on your local filesystem.
You will probably need to be root to run this program, as the serial devices and control socket it uses are normally privileged.
After startup, the top part of the screen reports the contents of several especially interesting packet types. The bottom half of the screen is a scrolling hex dump of all packets the GPS is issuing. Dump lines beginning >>> represent control packets sent to the GPS.
At SiRF firmware level 231, the "UTC" time displayed is not real UTC, as it is not leap-second-corrected. This is due to an inadequacy in the SiRF firmware.
To interpret what you see, you will need a copy of the SiRF Binary Protocol Reference Manual.
The following comands are available while sirfmon is running:
Non-static mode is designed for use with road navigation software, which often snaps the reported position to the nearest road within some uncertainty radius. You probably want to turn static navigation off for pedestrian use, as it is likely to report speed zero and position changing in lsrge jumps.
The logic for hunting the GPS's baud rate is vulnerable to various sorts of RS232 flakiness. If it hangs for longer than a few seconds, kill the program and restart.
(8), gps(1), (3), (3), gpsprof(1), gpsfake(1), gnuplot(1).
Eric S. Raymond <esr@thyrsus.com>, based on code originally by Rob Janssen, PE1CHL. This code is part of the gpsd toolset; there is a project page for gpsd[1]here.