NMEA 0183 timedelta sensor
This line discipline interfaces NMEA devices, such as GPS receivers attached to
a serial or USB port.
The line discipline is enabled by the following sequence:
int ldisc = NMEADISC, fildes; ...
ioctl(fildes, TIOCSETD, &ldisc);
The byte stream is unaltered by the line discipline which maintains timedelta
and position sensors using the NMEA data. The sensors will appear as nmea* in
the list. The timedelta (nanoseconds difference between the received time
information and the local time), and position (calculated latitude and
longitude in degrees) can be accessed through the
line discipline decodes the
following NMEA 0183 sentences:
- Recommended Minimum Specific GPS/TRANSIT Data. The time and date
information and position are extracted. The warning indication is used to
provide the sensor status (see below). If the attached device sends the
GPRMC message in the 13-field format, the operation mode of the GPS device
is reported in the sensor description. The sensor timestamp is copied from
the tty timestamp if a device with PPS is being used and tty timestamping
has been turned on. Otherwise the sensor timestamp is taken when the
initial `$' character of a message block is received from the NMEA
The quality of the timedelta is reported as the sensor status:
- The time information and position are valid. The timedelta is safe to use
for applications like
- The attached GPS receiver has been indicating a warning condition for at
least the last ten minutes. The timedelta should be used with care.
- tty timestamping has been turned on but there is no PPS signal present or
the GPS receiver indicated a warning condition for at least the last
twenty minutes. Check your hardware. Some GPS units need PPS to be
manually turned on.
The status of a second sensor is used to report the status of the device itself:
- The clock is synchronized, e.g. a GPS receiver has a fix.
- The device issued a warning condition, e.g. a GPS receiver has no
interface first appeared in
line discipline was written by