![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
\inmodule QtPositioning More...
#include <qnmeapositioninfosource.h>
Public Types | |
enum | UpdateMode { RealTimeMode = 1 , SimulationMode } |
Defines the available update modes. More... | |
![]() | |
enum | Error { AccessError = 0 , ClosedError = 1 , UnknownSourceError = 2 , NoError = 3 , UpdateTimeoutError = 4 } |
The Error enumeration represents the errors which can occur. More... | |
enum | PositioningMethod { NoPositioningMethods = 0x00000000 , SatellitePositioningMethods = 0x000000ff , NonSatellitePositioningMethods = 0xffffff00 , AllPositioningMethods = 0xffffffff } |
Defines the types of positioning methods. More... | |
Public Slots | |
void | startUpdates () override |
\reimp | |
void | stopUpdates () override |
\reimp | |
void | requestUpdate (int timeout=0) override |
\reimp | |
![]() | |
virtual void | startUpdates ()=0 |
Starts emitting updates at regular intervals as specified by setUpdateInterval(). | |
virtual void | stopUpdates ()=0 |
Stops emitting updates at regular intervals. | |
virtual void | requestUpdate (int timeout=0)=0 |
Attempts to get the current position and emit positionUpdated() with this information. | |
![]() | |
void | deleteLater () |
\threadsafe | |
Public Member Functions | |
QNmeaPositionInfoSource (UpdateMode updateMode, QObject *parent=nullptr) | |
Constructs a QNmeaPositionInfoSource instance with the given parent and updateMode. | |
~QNmeaPositionInfoSource () | |
Destroys the position source. | |
void | setUserEquivalentRangeError (double uere) |
Sets the User Equivalent Range Error (UERE) to uere. | |
double | userEquivalentRangeError () const |
Returns the current User Equivalent Range Error (UERE). | |
UpdateMode | updateMode () const |
Returns the update mode. | |
void | setDevice (QIODevice *source) |
Sets the NMEA data source to device. | |
QIODevice * | device () const |
Returns the NMEA data source. | |
void | setUpdateInterval (int msec) override |
\reimp | |
QGeoPositionInfo | lastKnownPosition (bool fromSatellitePositioningMethodsOnly=false) const override |
\reimp | |
PositioningMethods | supportedPositioningMethods () const override |
\reimp | |
int | minimumUpdateInterval () const override |
\reimp | |
Error | error () const override |
\reimp | |
![]() | |
QGeoPositionInfoSource (QObject *parent) | |
Creates a position source with the specified parent. | |
virtual | ~QGeoPositionInfoSource () |
Destroys the position source. | |
int | updateInterval () const |
QBindable< int > | bindableUpdateInterval () |
virtual void | setPreferredPositioningMethods (PositioningMethods methods) |
PositioningMethods | preferredPositioningMethods () const |
QBindable< PositioningMethods > | bindablePreferredPositioningMethods () |
QString | sourceName () const |
virtual bool | setBackendProperty (const QString &name, const QVariant &value) |
Sets the backend-specific property named name to value. | |
virtual QVariant | backendProperty (const QString &name) const |
Returns the value of the backend-specific property named name, if present. | |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
bool | moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL) |
Changes the thread affinity for this object and its children and returns true on success. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
void | killTimer (Qt::TimerId id) |
template<typename T> | |
T | findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T> | |
QList< T > | findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T> | |
T | findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
template<typename T> | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
Protected Member Functions | |
bool | parsePosInfoFromNmeaData (QByteArrayView data, QGeoPositionInfo *posInfo, bool *hasFix) |
Parses an NMEA sentence string into a QGeoPositionInfo. | |
void | setError (QGeoPositionInfoSource::Error positionError) |
![]() | |
QGeoPositionInfoSource (QGeoPositionInfoSourcePrivate &dd, QObject *parent) | |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Friends | |
class | QNmeaPositionInfoSourcePrivate |
Additional Inherited Members | |
![]() | |
void | positionUpdated (const QGeoPositionInfo &update) |
If startUpdates() or requestUpdate() is called, this signal is emitted when an update becomes available. | |
void | errorOccurred (QGeoPositionInfoSource::Error) |
This signal is emitted after an error occurred. | |
void | supportedPositioningMethodsChanged () |
This signal is emitted when the supported positioning methods changed. | |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
![]() | |
static QGeoPositionInfoSource * | createDefaultSource (QObject *parent) |
Creates and returns a position source with the given parent that reads from the system's default sources of location data, or the plugin with the highest available priority. | |
static QGeoPositionInfoSource * | createDefaultSource (const QVariantMap ¶meters, QObject *parent) |
Creates and returns a position source with the given parent that reads from the system's default sources of location data, or the plugin with the highest available priority. | |
static QGeoPositionInfoSource * | createSource (const QString &sourceName, QObject *parent) |
Creates and returns a position source with the given parent, by loading the plugin named sourceName. | |
static QGeoPositionInfoSource * | createSource (const QString &sourceName, const QVariantMap ¶meters, QObject *parent) |
Creates and returns a position source with the given parent, by loading the plugin named sourceName. | |
static QStringList | availableSources () |
Returns a list of available source plugins. | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1, typename Func2> | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1, typename Func2> | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1, typename Func2> | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1> | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
int | updateInterval |
This property holds the requested interval in milliseconds between each update. | |
int | minimumUpdateInterval |
This property holds the minimum time (in milliseconds) required to retrieve a position update. | |
QString | sourceName |
This property holds the unique name of the position source implementation in use. | |
PositioningMethods | preferredPositioningMethods |
Sets the preferred positioning methods for this source. | |
![]() | |
QString | objectName |
the name of this object | |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
\inmodule QtPositioning
The QNmeaPositionInfoSource class provides positional information using a NMEA data source.
NMEA is a commonly used protocol for the specification of one's global position at a certain point in time. The QNmeaPositionInfoSource class reads NMEA data and uses it to provide positional data in the form of QGeoPositionInfo objects.
A QNmeaPositionInfoSource instance operates in either \l {RealTimeMode} or \l {SimulationMode}. These modes allow NMEA data to be read from either a live source of positional data, or replayed for simulation purposes from previously recorded NMEA data.
The source of NMEA data is set with setDevice().
Use startUpdates() to start receiving regular position updates and stopUpdates() to stop these updates. If you only require updates occasionally, you can call requestUpdate() to request a single update.
In both cases the position information is received via the positionUpdated() signal and the last known position can be accessed with lastKnownPosition().
QNmeaPositionInfoSource supports reporting the accuracy of the horizontal and vertical position. To enable position accuracy reporting an estimate of the User Equivalent Range Error associated with the NMEA source must be set with setUserEquivalentRangeError().
Definition at line 13 of file qnmeapositioninfosource.h.
Defines the available update modes.
\value RealTimeMode Positional data is read and distributed from the data source as it becomes available. Use this mode if you are using a live source of positional data (for example, a GPS hardware device). \value SimulationMode The data and time information in the NMEA source data is used to provide positional updates at the rate at which the data was originally recorded. Use this mode if the data source contains previously recorded NMEA data and you want to replay the data for simulation purposes.
Enumerator | |
---|---|
RealTimeMode | |
SimulationMode |
Definition at line 17 of file qnmeapositioninfosource.h.
|
explicit |
Constructs a QNmeaPositionInfoSource instance with the given parent and updateMode.
Definition at line 754 of file qnmeapositioninfosource.cpp.
QNmeaPositionInfoSource::~QNmeaPositionInfoSource | ( | ) |
Destroys the position source.
Definition at line 763 of file qnmeapositioninfosource.cpp.
QIODevice * QNmeaPositionInfoSource::device | ( | ) | const |
Returns the NMEA data source.
Definition at line 877 of file qnmeapositioninfosource.cpp.
|
overridevirtual |
\reimp
Implements QGeoPositionInfoSource.
Definition at line 949 of file qnmeapositioninfosource.cpp.
|
overridevirtual |
\reimp
Implements QGeoPositionInfoSource.
Definition at line 924 of file qnmeapositioninfosource.cpp.
|
overridevirtual |
\reimp
Implements QGeoPositionInfoSource.
Definition at line 941 of file qnmeapositioninfosource.cpp.
|
protected |
Parses an NMEA sentence string into a QGeoPositionInfo.
The default implementation will parse standard NMEA sentences. This method should be reimplemented in a subclass whenever the need to deal with non-standard NMEA sentences arises.
The parser reads size bytes from data and uses that information to setup posInfo and hasFix. If hasFix is set to false then posInfo may contain only the time or the date and the time.
Returns true if the sentence was successfully parsed, otherwise returns false and should not modifiy posInfo or hasFix.
Definition at line 831 of file qnmeapositioninfosource.cpp.
|
overrideslot |
\reimp
Definition at line 916 of file qnmeapositioninfosource.cpp.
Sets the NMEA data source to device.
If the device is not open, it will be opened in \l{QIODeviceBase::}{ReadOnly} mode.
The source device can only be set once and must be set before calling \l startUpdates() or \l requestUpdate().
Definition at line 864 of file qnmeapositioninfosource.cpp.
|
protected |
Definition at line 954 of file qnmeapositioninfosource.cpp.
|
overridevirtual |
\reimp
Reimplemented from QGeoPositionInfoSource.
Definition at line 885 of file qnmeapositioninfosource.cpp.
void QNmeaPositionInfoSource::setUserEquivalentRangeError | ( | double | uere | ) |
Sets the User Equivalent Range Error (UERE) to uere.
The UERE is used in calculating an estimate of the accuracy of the position information reported by the position info source. The UERE should be set to a value appropriate for the GPS device which generated the NMEA stream.
The true UERE value is calculated from multiple error sources including errors introduced by the satellites and signal propogation delays through the atmosphere as well as errors introduced by the receiving GPS equipment. For details on GPS accuracy see \l {https://web.archive.org/web/20161212144906if_/http://edu-observatory.org/gps/gps_accuracy.html} {Sam J. Wormley, GPS Errors & Estimating Your Reveiver's Accuracy}.
A typical value for UERE is approximately 5.1.
Definition at line 784 of file qnmeapositioninfosource.cpp.
|
overrideslot |
\reimp
Definition at line 900 of file qnmeapositioninfosource.cpp.
|
overrideslot |
\reimp
Definition at line 908 of file qnmeapositioninfosource.cpp.
|
overridevirtual |
\reimp
Implements QGeoPositionInfoSource.
Definition at line 933 of file qnmeapositioninfosource.cpp.
QNmeaPositionInfoSource::UpdateMode QNmeaPositionInfoSource::updateMode | ( | ) | const |
Returns the update mode.
Definition at line 847 of file qnmeapositioninfosource.cpp.
double QNmeaPositionInfoSource::userEquivalentRangeError | ( | ) | const |
Returns the current User Equivalent Range Error (UERE).
The UERE is used in calculating an estimate of the accuracy of the position information reported by the position info source. The default value is NaN which means no accuracy information will be provided.
Definition at line 798 of file qnmeapositioninfosource.cpp.
|
friend |
Definition at line 64 of file qnmeapositioninfosource.h.