summaryrefslogtreecommitdiff
path: root/man/gpsctl.xml
diff options
context:
space:
mode:
Diffstat (limited to 'man/gpsctl.xml')
-rw-r--r--man/gpsctl.xml284
1 files changed, 284 insertions, 0 deletions
diff --git a/man/gpsctl.xml b/man/gpsctl.xml
new file mode 100644
index 00000000..b0f9f6c0
--- /dev/null
+++ b/man/gpsctl.xml
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+This file is Copyright (c) 2010 by the GPSD project
+SPDX-License-Identifier: BSD-2-clause
+-->
+<!DOCTYPE refentry PUBLIC
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<refentry id='gpsctl.1'>
+<refentryinfo><date>29 Oct 2006</date></refentryinfo>
+<refmeta>
+<refentrytitle>gpsctl</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">The GPSD Project</refmiscinfo>
+<refmiscinfo class="manual">GPSD Documentation</refmiscinfo>
+</refmeta>
+<refnamediv id='name'>
+<refname>gpsctl</refname>
+<refpurpose>control the modes of a GPS</refpurpose>
+</refnamediv>
+<refsynopsisdiv id='synopsis'>
+
+<cmdsynopsis>
+ <command>gpsctl</command>
+ <arg choice='opt'>-h </arg>
+ <group>
+ <arg choice='plain'>-b</arg>
+ <arg choice='plain'>-n</arg>
+ </group>
+ <arg choice='opt'>-x <replaceable>control</replaceable></arg>
+ <arg choice='opt'>-e </arg>
+ <arg choice='opt'>-f </arg>
+ <arg choice='opt'>-l </arg>
+ <arg choice='opt'>-s <replaceable>speed</replaceable></arg>
+ <arg choice='opt'>-t <replaceable>devicetype</replaceable></arg>
+ <arg choice='opt'>-R </arg>
+ <arg choice='opt'>-D <replaceable>debuglevel</replaceable></arg>
+ <arg choice='opt'>-V </arg>
+ <arg choice='opt'><replaceable>serial-port</replaceable></arg>
+</cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1 id='description'><title>DESCRIPTION</title>
+
+<para><application>gpsctl</application> 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.</para>
+
+<para>If you have only one GPS attached to your machine, and gpsd is
+running, it is not necessary to specify the device;
+<application>gpsctl</application> does its work through
+<application>gpsd</application>, which will locate it for you.</para>
+
+<para>When <application>gpsd</application> is not running, the device
+specification is required, and you will need to be running as root or
+be a member of the device's owning group in order to have write access
+to the device. On many Unix variants the owning group will be named
+'dialout'.</para>
+
+<para>The program accepts the following options:</para>
+<variablelist remap='TP'>
+
+<varlistentry>
+<term>-b</term>
+<listitem>
+<para>Put the GPS into native (binary) mode.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-c</term>
+<listitem>
+<para>Change the GPS's cycle time. Units are seconds. Note, most
+GPSes have a fixed cycle time of 1 second.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-e</term>
+<listitem>
+<para>Generate 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>-t</option> option without specifying a device. Note:
+the packet data for a binary prototype will be raw, not ASCII-ized in
+any way.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-f</term>
+<listitem>
+<para>Force low-level access (not through the daemon).</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-l</term>
+<listitem>
+<para>List a table showing which option switches can be applied
+to which device types, and exit.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-n</term>
+<listitem>
+<para>Put GPS into NMEA mode.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-s</term>
+<listitem>
+<para>Set the baud rate at which the GPS emits packets.</para>
+
+<para>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 serial adaptor chip
+with the UART on the GPS chipset when 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.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-t</term>
+<listitem>
+<para>Force the device type.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-x</term>
+<listitem>
+<para>Send a specified control string to the GPS;
+<application>gpsctl</application> 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. For all other supported binary
+GPSes (notably including SiRF) the string is taken as the entire
+message payload and wrapped with appropriate header, trailer and
+checksum bytes. C-style backslash escapes in the string, notably \xNN
+for hex, will be interpreted; additionally, \e will be replaced with
+ESC. This switch implies <option>-f</option>.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-T</term>
+<listitem>
+<para>Change the sampling timeout. Defaults to 8 seconds, which should
+always be sufficient to get an identifying packet from a device
+emitting at the normal rate of 1 per second.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-R</term>
+<listitem>
+<para>Remove the GPSD shared-memory segment used for SHM export. This
+option will normally only be of interest to GPSD developers.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-h</term>
+<listitem>
+<para>Display program usage and exit.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-D</term>
+<listitem>
+<para>Set level of debug messages.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>-V</term>
+<listitem>
+<para>Display program version and exit.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+<para>The argument of the forcing option, <option>-t</option>, should be a
+string which is contained in exactly one of the known driver
+names; for a list, do <command>gpsctl -l</command>.</para>
+
+<para>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, <application>gpsctl</application> exits with
+a warning. (This may be useful in scripts.)</para>
+
+<para>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.)</para>
+
+<para>If no options are given, the program will display a message
+identifying the GPS type of the selected device and exit.</para>
+
+<para>Reset (-r) operations must stand alone; others can be combined.
+Multiple options will be executed in this order: mode changes (-b and
+-n) first, speed changes (-s) second, and control-string sends (-c)
+last.</para>
+
+</refsect1>
+
+<refsect1 id='environment'><title>ENVIRONMENT VARIABLES</title>
+
+<para>By setting the environment variable <envar>GPSD_SHM_KEY</envar>,
+you can control the key value used to designate the shared-memory
+segment removed with the -R option. This will be useful mainly when
+isolating test instances of <application>gpsd</application> from
+production ones.</para>
+
+</refsect1>
+
+<refsect1 id='examples'><title>EXAMPLES</title>
+
+<variablelist>
+<varlistentry>
+<term><command>gpsctl /dev/ttyUSB0</command></term>
+<listitem>
+<para>Attempt to identify the device on USB serial device 0. Time out
+after the default number of seconds. Adding the <option>-f</option> will
+force low-level access and suppress the normal complaint when this
+tool can't find a GPSD to work through.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>gpsctl -f -n -s 9600 /dev/ttyUSB0</term>
+<listitem>
+<para>Use 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.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1>
+
+<refsect1 id='bugs'><title>BUGS</title>
+
+<para>SiRF 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.</para>
+
+<para>Baud rate and mode changes work in direct mode but are not
+reliable in client mode. This will be fixed in a future release.</para>
+
+</refsect1>
+
+<refsect1 id='see_also'><title>SEE ALSO</title>
+<para>
+<citerefentry><refentrytitle>gpsd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>gpsdctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>gps</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>libgps</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>libgpsmm</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>gpsprof</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+<citerefentry><refentrytitle>gpsfake</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
+</para>
+</refsect1>
+
+<refsect1 id='maintainer'><title>AUTHOR</title>
+
+<para>Eric S. Raymond <email>esr@thyrsus.com</email>.</para>
+</refsect1>
+</refentry>