QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | List of all members
QgsNmeaConnection Class Reference

Evaluates NMEA sentences coming from a GPS device. More...

#include <qgsnmeaconnection.h>

Inheritance diagram for QgsNmeaConnection:
Inheritance graph
[legend]

Public Member Functions

 QgsNmeaConnection (QIODevice *device)
 Constructs a QgsNmeaConnection with given device.
 
- Public Member Functions inherited from QgsGpsConnection
 QgsGpsConnection (QIODevice *dev)
 Constructor.
 
 ~QgsGpsConnection () override
 
bool close ()
 Closes connection to device.
 
bool connect ()
 Opens connection to device.
 
QgsGpsInformation currentGPSInformation () const
 Returns the current gps information (lat, lon, etc.)
 
QgsPoint lastValidLocation () const
 Returns the last valid location obtained by the device.
 
void setSource (QIODevice *source)
 Sets the GPS source. The class takes ownership of the device class.
 
Status status () const
 Returns the status. Possible state are not connected, connected, data received.
 

Protected Slots

void parseData () override
 Parse available data source content.
 
- Protected Slots inherited from QgsGpsConnection
virtual void parseData ()=0
 Parse available data source content.
 

Protected Member Functions

void processGgaSentence (const char *data, int len)
 process GGA sentence
 
void processGsaSentence (const char *data, int len)
 process GSA sentence
 
void processGstSentence (const char *data, int len)
 process GST sentence
 
void processGsvSentence (const char *data, int len)
 process GSV sentence
 
void processHchdgSentence (const char *data, int len)
 process HCHDG sentence
 
void processHdtSentence (const char *data, int len)
 process HDT sentence
 
void processRmcSentence (const char *data, int len)
 process RMC sentence
 
void processStringBuffer ()
 Splits mStringBuffer into sentences and calls libnmea.
 
void processVtgSentence (const char *data, int len)
 process VTG sentence
 

Protected Attributes

QString mStringBuffer
 Store data from the device before it is processed.
 
- Protected Attributes inherited from QgsGpsConnection
QgsGpsInformation mLastGPSInformation
 Last state of the gps related variables (e.g. position, time, ...)
 
std::unique_ptr< QIODevice > mSource
 Data source (e.g. serial device, socket, file,...)
 
Status mStatus = NotConnected
 Connection status.
 

Additional Inherited Members

- Public Types inherited from QgsGpsConnection
enum  Status { NotConnected , Connected , DataReceived , GPSDataReceived }
 
- Signals inherited from QgsGpsConnection
void fixStatusChanged (Qgis::GpsFixStatus status)
 Emitted when the GPS device fix status is changed.
 
void nmeaSentenceReceived (const QString &substring)
 Emitted whenever the GPS device receives a raw NMEA sentence.
 
void positionChanged (const QgsPoint &point)
 Emitted when the GPS position changes.
 
void stateChanged (const QgsGpsInformation &info)
 Emitted whenever the GPS state is changed.
 
- Static Public Attributes inherited from QgsGpsConnection
static const QgsSettingsEntryIntegersettingGpsAcquisitionInterval = new QgsSettingsEntryInteger( QStringLiteral( "acquisition-interval" ), QgsSettingsTree::sTreeGps, 0, QStringLiteral( "GPS track point acquisition interval" ) )
 Settings entry GPS track point acquisition interval.
 
static const QgsSettingsEntryBoolsettingGpsApplyLeapSecondsCorrection = new QgsSettingsEntryBool( QStringLiteral( "apply-leap-seconds-correction" ), QgsSettingsTree::sTreeGps, true, QStringLiteral( "Whether leap seconds corrections should be applied to GPS timestamps" ) )
 Settings entry GPS apply leap seconds correction.
 
static const QgsSettingsEntryBoolsettingGpsBearingFromTravelDirection = new QgsSettingsEntryBool( QStringLiteral( "calculate-bearing-from-travel" ), QgsSettingsTree::sTreeGps, false, QStringLiteral( "Calculate GPS bearing from travel direction" ) )
 Settings entry GPS calculate bearing from travel direction.
 
static const QgsSettingsEntryDoublesettingGpsDistanceThreshold = new QgsSettingsEntryDouble( QStringLiteral( "distance-threshold" ), QgsSettingsTree::sTreeGps, 0, QStringLiteral( "GPS track point distance threshold" ) )
 Settings entry GPS track point distance threshold.
 
static const QgsSettingsEntryIntegersettingGpsLeapSeconds = new QgsSettingsEntryInteger( QStringLiteral( "leap-seconds" ), QgsSettingsTree::sTreeGps, 18, QStringLiteral( "Leap seconds correction amount (in seconds)" ) )
 Settings entry GPS leap seconds correction amount (in seconds)
 
static const QgsSettingsEntryEnumFlag< Qgis::GpsConnectionType > * settingsGpsConnectionType = new QgsSettingsEntryEnumFlag<Qgis::GpsConnectionType>( QStringLiteral( "gps-connection-type" ), QgsSettingsTree::sTreeGps, Qgis::GpsConnectionType::Automatic, QStringLiteral( "GPS connection type" ) )
 Settings entry GPS connection type.
 
static const QgsSettingsEntryStringsettingsGpsdDeviceName = new QgsSettingsEntryString( QStringLiteral( "gpsd-device-name" ), QgsSettingsTree::sTreeGps, QString(), QStringLiteral( "GPSD connection device name" ) )
 Settings entry GPSD device name.
 
static const QgsSettingsEntryStringsettingsGpsdHostName = new QgsSettingsEntryString( QStringLiteral( "gpsd-host-name" ), QgsSettingsTree::sTreeGps, QString(), QStringLiteral( "GPSD connection host name" ) )
 Settings entry GPSD host name.
 
static const QgsSettingsEntryIntegersettingsGpsdPortNumber = new QgsSettingsEntryInteger( QStringLiteral( "gpsd-port" ), QgsSettingsTree::sTreeGps, 2947, QStringLiteral( "GPSD port number" ) )
 Settings entry GPSD port number.
 
static const QgsSettingsEntryStringsettingsGpsSerialDevice = new QgsSettingsEntryString( QStringLiteral( "gpsd-serial-device" ), QgsSettingsTree::sTreeGps, QString(), QStringLiteral( "GPS serial device name" ) )
 Settings entry GPS serial device name.
 
static const QgsSettingsEntryIntegersettingsGpsTimeStampOffsetFromUtc = new QgsSettingsEntryInteger( QStringLiteral( "timestamp-offset-from-utc" ), QgsSettingsTree::sTreeGps, 0, QStringLiteral( "GPS time stamp offset from UTC (in seconds)" ) )
 Settings entry GPS time offset from UTC in seconds.
 
static const QgsSettingsEntryEnumFlag< Qt::TimeSpec > * settingsGpsTimeStampSpecification = new QgsSettingsEntryEnumFlag<Qt::TimeSpec>( QStringLiteral( "timestamp-time-spec" ), QgsSettingsTree::sTreeGps, Qt::TimeSpec::LocalTime, QStringLiteral( "GPS time stamp specification" ) )
 Settings entry time specification for GPS time stamps.
 
static const QgsSettingsEntryStringsettingsGpsTimeStampTimeZone = new QgsSettingsEntryString( QStringLiteral( "timestamp-time-zone" ), QgsSettingsTree::sTreeGps, QString(), QStringLiteral( "GPS time stamp time zone" ) )
 Settings entry GPS time stamp time zone.
 

Detailed Description

Evaluates NMEA sentences coming from a GPS device.

Definition at line 28 of file qgsnmeaconnection.h.

Constructor & Destructor Documentation

◆ QgsNmeaConnection()

QgsNmeaConnection::QgsNmeaConnection ( QIODevice *  device)

Constructs a QgsNmeaConnection with given device.

Ownership of device is transferred to the connection.

Definition at line 38 of file qgsnmeaconnection.cpp.

Member Function Documentation

◆ parseData

void QgsNmeaConnection::parseData ( )
overrideprotectedslot

Parse available data source content.

Definition at line 43 of file qgsnmeaconnection.cpp.

◆ processGgaSentence()

void QgsNmeaConnection::processGgaSentence ( const char *  data,
int  len 
)
protected

process GGA sentence

Definition at line 185 of file qgsnmeaconnection.cpp.

◆ processGsaSentence()

void QgsNmeaConnection::processGsaSentence ( const char *  data,
int  len 
)
protected

process GSA sentence

Definition at line 474 of file qgsnmeaconnection.cpp.

◆ processGstSentence()

void QgsNmeaConnection::processGstSentence ( const char *  data,
int  len 
)
protected

process GST sentence

Definition at line 234 of file qgsnmeaconnection.cpp.

◆ processGsvSentence()

void QgsNmeaConnection::processGsvSentence ( const char *  data,
int  len 
)
protected

process GSV sentence

Definition at line 386 of file qgsnmeaconnection.cpp.

◆ processHchdgSentence()

void QgsNmeaConnection::processHchdgSentence ( const char *  data,
int  len 
)
protected

process HCHDG sentence

Definition at line 262 of file qgsnmeaconnection.cpp.

◆ processHdtSentence()

void QgsNmeaConnection::processHdtSentence ( const char *  data,
int  len 
)
protected

process HDT sentence

Definition at line 253 of file qgsnmeaconnection.cpp.

◆ processRmcSentence()

void QgsNmeaConnection::processRmcSentence ( const char *  data,
int  len 
)
protected

process RMC sentence

Definition at line 275 of file qgsnmeaconnection.cpp.

◆ processStringBuffer()

void QgsNmeaConnection::processStringBuffer ( )
protected

Splits mStringBuffer into sentences and calls libnmea.

Definition at line 86 of file qgsnmeaconnection.cpp.

◆ processVtgSentence()

void QgsNmeaConnection::processVtgSentence ( const char *  data,
int  len 
)
protected

process VTG sentence

Definition at line 463 of file qgsnmeaconnection.cpp.

Member Data Documentation

◆ mStringBuffer

QString QgsNmeaConnection::mStringBuffer
protected

Store data from the device before it is processed.

Definition at line 46 of file qgsnmeaconnection.h.


The documentation for this class was generated from the following files: