4#ifndef QNMEAPOSITIONINFOSOURCE_H
5#define QNMEAPOSITIONINFOSOURCE_H
7#include <QtPositioning/QGeoPositionInfoSource>
23 explicit QNmeaPositionInfoSource(UpdateMode updateMode, QObject *parent =
nullptr);
24 ~QNmeaPositionInfoSource();
26 void setUserEquivalentRangeError(
double uere);
27 double userEquivalentRangeError()
const;
29 UpdateMode updateMode()
const;
31 void setDevice(QIODevice *source);
32 QIODevice *device()
const;
34 void setUpdateInterval(
int msec) override;
36 QGeoPositionInfo lastKnownPosition(
bool fromSatellitePositioningMethodsOnly =
false)
const override;
37 PositioningMethods supportedPositioningMethods()
const override;
38 int minimumUpdateInterval()
const override;
39 Error error()
const override;
43 void startUpdates() override;
44 void stopUpdates() override;
45 void requestUpdate(
int timeout = 0) override;
48#if QT_DEPRECATED_SINCE(7
, 0
)
50 bool parsePosInfoFromNmeaData(
const char *data,
52 QGeoPositionInfo *posInfo,
57 bool parsePosInfoFromNmeaData(QByteArrayView data,
58 QGeoPositionInfo *posInfo,
61 void setError(QGeoPositionInfoSource::Error positionError);
64 Q_DISABLE_COPY(QNmeaPositionInfoSource)
65 friend class QNmeaPositionInfoSourcePrivate;
66 QNmeaPositionInfoSourcePrivate *d;
void notifyNewUpdate(QGeoPositionInfo *update, bool fixStatus)
~QNmeaPositionInfoSourcePrivate()
QGeoPositionInfo m_lastUpdate
bool parsePosInfoFromNmeaData(QByteArrayView data, QGeoPositionInfo *posInfo, bool *hasFix)
void requestUpdate(int msec)
double m_userEquivalentRangeError
QPointer< QIODevice > m_device
QGeoPositionInfoSource::Error m_positionError
void timerEvent(QTimerEvent *event) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
QNmeaReader(QNmeaPositionInfoSourcePrivate *sourcePrivate)
QNmeaPositionInfoSourcePrivate * m_proxy
virtual void readAvailableData()=0
void readAvailableData() override
~QNmeaRealTimeReader() override
QNmeaRealTimeReader(QNmeaPositionInfoSourcePrivate *sourcePrivate)
QGeoPositionInfo m_update
void timerEvent(QTimerEvent *event) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
void readAvailableData() override
#define USE_POSITION_NMEA_PIMPL
static bool propagateCoordinate(QGeoPositionInfo &dst, const QGeoPositionInfo &src, bool force=true)
static int processSentence(QGeoPositionInfo &info, QByteArray &m_nextLine, QNmeaPositionInfoSourcePrivate *m_proxy, QQueue< QPendingGeoPositionInfo > &m_pendingUpdates, bool &hasFix)
static bool propagateAttributes(QGeoPositionInfo &dst, const QGeoPositionInfo &src, bool force=true)
static qint64 msecsTo(const QDateTime &from, const QDateTime &to)
static bool propagateDate(QGeoPositionInfo &dst, const QGeoPositionInfo &src)
static bool mergePositions(QGeoPositionInfo &dst, const QGeoPositionInfo &src, QByteArray nmeaSentence)