gpsctl129 Oct 2006gpsctlcontrol the modes of a GPSgpsctl-h -b-n-x control-e -f -l -s speed-t devicetype-D debuglevel-V serial-portDESCRIPTIONgpsctl can switch a dual-mode GPS
between NMEA and vendor-binary modes. It can also be used to set the
device baudrate. Note: Not all devices have these capabilities.If you have only one GPS attached to your machine, and gpsd is
running, it is not necessary to specify the device;
gpsctl does its work through
gpsd, which will locate it for you.When gpsd is not running, the device
specification is required, and you will almost certainly need to be
running as root in order to have write access to the device.The program accepts the following options:-bPut the GPS into binary mode. After the GPS resets itself, autobaud to
the new speed.-cChange the GPS's cycle time. Units are seconds. Note, most
GPSes have a fixed cycle time of 1 second.-eGenerate the packet from any other arguments specified and ship
it to standard output instead of the device. This switch can be used
with the option without specifying a device. Note:
the packet data for a binary prototype will be raw, not ASCII-ized in
any way.-fForce low-level access (not through the daemon).-lList a table showing which option switches can be applied
to which device types, and exit.-nPut GPS into NMEA mode. After the GPS resets itself autobaud to
its new speed.-sSet the baud rate at which the GPS emits packets.Use this option with caution. On USB and Bluetooth GPSes it is
also possible for serial mode setting to fail either because the
serial adaptor chip does not support non-8N1 modes or because the
device firmware does not properly synchronize the serrial adaptor chip
with the UART on the GPS chipset whjen the speed changes. These
failures can hang your device, possibly requiring a GPS power cycle or (in
extreme cases) physically disconnecting the NVRAM backup battery.-tForce the device type.-xSend a specified control string to the GPS;
gpsctl will provide packet headers and
trailers and checksum as appropriate for binary packet types, and
whatever checksum and trailer is required for text packet types. (You
must include the leading $ for NMEA packets.) When sending to a UBX
device, the first two bytes of the string supplied will become the
message class and type, and the remainder the payload. When sending to
a Navcom NCT or Trimble TSIP device, the first byte is interpreted as
the command ID and the rest as payload. When sending to a Zodiac
device, the first two bytes are used as a message ID of type
little-endian short, and the remainder as payload in byte pairs
interpreted as little-endian short. C-style backslash escapes in the
string, notably \xNN for hex, will be interpreted; additionally, \e
will be replaced with ESC. This switch implies
.-TChange the sampling timeout. Defaults to 4 seconds, which
should always be sufficient to get a packet from a device emitting at
the normal rate of 1 per second.-hDisplay program usage and exit.-DSet level of debug messages.-VDisplay program version and exit.The argument of the forcing option. , should be a
string which should be contained in exactly one of the known driver
names; for a list, do gpsctl -l.Forcing the device type behaves somewhat differently depending
on whether this tool is going through the daemon or not. In high-level
mode, if the device that daemon selects for you doesn't match the
driver you specified, gpsctl exits with
a warning. (This may be useful in scripts.)In low-level mode, if the device identifies as a Generic NMEA,
use the selected driver instead. This will be useful if you have a
GPS device of known type that is in NMEA mode and not responding to
probes. (This option was originally implemented for talking to
SiRFStar I chips, which don't respond to the normal SiRF ID
probe.)If no options are given, the program will display a message
identifying the GPS type of the selected device and exit.Reset (-r) operations must stand alone; others can be combined.
Multiple opations will be executed in tis order: mode changes (-b and
-n) first, speed changes (-s) second, and control-string sends (-c)
last.EXAMPLESgpsctl /dev/ttyUSB0Attempt to identify the device on USB serial device 0. Time out
after the default number of seconds. Adding the will
force low-level access and suppress the normal complaint when this
tool can't find a GPSD to work through.gpsctl -f -n -s 9600 /dev/ttyUSB0Use low-level operations (not going through a gpsd instance) to
switch a GPS to NMEA mode at 9600bps. The tool will identify the
GPS type itself.BUGSSiRF GPSes can only be identified by the success of an attempt
to flip them into SiRF binary mode. Thus, the process of probing one of
these running in NMEA will change its behavior.SEE ALSOgpsd8,
gps1,
libgps3,
libgpsd3,
gpsprof1,
gpsfake1.
AUTHOREric S. Raymond esr@thyrsus.com. There is a
project page for gpsdhere.