3#ifndef QNMEAPOSITIONINFOSOURCE_H
4#define QNMEAPOSITIONINFOSOURCE_H
6#include <QtPositioning/QGeoPositionInfoSource>
22 explicit QNmeaPositionInfoSource(UpdateMode updateMode, QObject *parent =
nullptr);
23 ~QNmeaPositionInfoSource();
25 void setUserEquivalentRangeError(
double uere);
26 double userEquivalentRangeError()
const;
28 UpdateMode updateMode()
const;
30 void setDevice(QIODevice *source);
31 QIODevice *device()
const;
33 void setUpdateInterval(
int msec) override;
35 QGeoPositionInfo lastKnownPosition(
bool fromSatellitePositioningMethodsOnly =
false)
const override;
36 PositioningMethods supportedPositioningMethods()
const override;
37 int minimumUpdateInterval()
const override;
38 Error error()
const override;
42 void startUpdates() override;
43 void stopUpdates() override;
44 void requestUpdate(
int timeout = 0) override;
47#if QT_DEPRECATED_SINCE(7
, 0
)
49 bool parsePosInfoFromNmeaData(
const char *data,
51 QGeoPositionInfo *posInfo,
56 bool parsePosInfoFromNmeaData(QByteArrayView data,
57 QGeoPositionInfo *posInfo,
60 void setError(QGeoPositionInfoSource::Error positionError);
63 Q_DISABLE_COPY(QNmeaPositionInfoSource)
64 friend class QNmeaPositionInfoSourcePrivate;
65 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 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)