4#ifndef QNMEAPOSITIONINFOSOURCE_P_H
5#define QNMEAPOSITIONINFOSOURCE_P_H
24#include <QtCore/qtimer.h>
25#include <QtCore/private/qglobal_p.h>
53 QGeoPositionInfo *posInfo,
73 void sourceDataClosed();
74 void updateRequestTimeout();
77 bool openSourceDevice();
79 void prepareSourceDevice();
80 void emitUpdated(
const QGeoPositionInfo &update);
82 QNmeaPositionInfoSource *m_source;
84 QGeoPositionInfo m_pendingUpdate;
86 QBasicTimer *m_updateTimer;
87 QTimer *m_requestTimer;
88 qreal m_horizontalAccuracy;
89 qreal m_verticalAccuracy;
90 bool m_noUpdateLastInterval;
91 bool m_updateTimeoutSent;
92 bool m_connectedReadyRead;
144 bool setFirstDateTime();
145 void processNextSentence();
147 QQueue<QPendingGeoPositionInfo> m_pendingUpdates;
148 QByteArray m_nextLine;
150 bool m_hasValidDateTime;
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)