Класс QNmeaPositionInfoSource
Класс QNmeaPositionInfoSource предоставляет информацию о местоположении, используя источник данных NMEA. Подробнее...
| Заголовок: | #include <QNmeaPositionInfoSource> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
| Наследует от: | QGeoPositionInfoSource |
Общедоступные типы
| Перечисление | UpdateMode { РежимРеальногоВремени, РежимМоделирования } |
Общедоступные функции
| QNmeaPositionInfoSource(UpdateMode updateMode, QObject *parent = Q_NULLPTR) | |
| ~QNmeaPositionInfoSource() | |
| QIODevice * | device() const |
| void | setDevice(QIODevice *device) |
| void | setUserEquivalentRangeError(double uere) |
| UpdateMode | updateMode() const |
| double | userEquivalentRangeError() const |
Переопределённые общедоступные функции
| virtual Error | error() const |
| virtual QGeoPositionInfo | lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const |
| virtual int | minimumUpdateInterval() const |
| virtual void | setUpdateInterval(int msec) |
| virtual PositioningMethods | supportedPositioningMethods() const |
- 9 общедоступных функций унаследовано от QGeoPositionInfoSource
- 31 общедоступных функций унаследовано от QObject
Общедоступные слоты
| virtual void | requestUpdate(int msec = 0) |
| virtual void | startUpdates() |
| virtual void | stopUpdates() |
- 3 общедоступных слота унаследовано от QGeoPositionInfoSource
- 1 общедоступный слот унаследовано от QObject
Защищённые функции
| virtual bool | parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix) |
- 9 защищённых функций унаследовано от QObject
Дополнительные унаследованные члены
- 3 свойства унаследовано от QGeoPositionInfoSource
- 1 свойство унаследовано от QObject
- 3 сигналы унаследовано от QGeoPositionInfoSource
- 2 сигнала унаследовано от QObject
- 3 статические общедоступные члены унаследовано от QGeoPositionInfoSource
- 11 статических общедоступных членов унаследовано от QObject
Подробное описание
Класс QNmeaPositionInfoSource предоставляет информацию о местоположении, используя источник данных NMEA.
NMEA — это распространённый протокол для определения глобального местоположения в определённый момент времени. Класс QNmeaPositionInfoSource считывает данные NMEA и использует их для предоставления данных о местоположении в виде объектов QGeoPositionInfo.
Экземпляр QNmeaPositionInfoSource работает в режиме РежимРеальногоВремени или РежимМоделирования. Эти режимы позволяют считывать данные NMEA из активного источника данных о местоположении или воспроизводить их для целей моделирования из ранее записанных данных NMEA.
Источник данных NMEA задаётся с помощью setDevice().
Используйте startUpdates(), чтобы начать получение регулярных обновлений местоположения, и stopUpdates(), чтобы остановить эти обновления. Если вам нужны обновления только время от времени, вы можете вызвать requestUpdate(), чтобы запросить одно обновление.
В обоих случаях информация о местоположении принимается через сигнал positionUpdated(), а последнее известное местоположение может быть получено с помощью lastKnownPosition().
QNmeaPositionInfoSource поддерживает отчёт о точности горизонтального и вертикального местоположения. Для включения отчёта о точности местоположения необходимо установить оценку User Equivalent Range Error, связанную с источником NMEA, с помощью setUserEquivalentRangeError().
Документация по типам членов
Перечисление QNmeaPositionInfoSource::UpdateMode
Определяет доступные режимы обновления.
| Постоянная | Значение | Описание |
|---|---|---|
QNmeaPositionInfoSource::RealTimeMode |
1 |
Данные о местоположении считываются и распространяются из источника данных по мере их поступления. Используйте этот режим, если вы используете активный источник данных о местоположении (например, устройство GPS). |
QNmeaPositionInfoSource::SimulationMode |
2 |
Информация о времени и данных в источнике данных NMEA используется для предоставления обновлений местоположения со скоростью, с которой данные были первоначально записаны. Используйте этот режим, если источник данных содержит ранее записанные данные NMEA и вы хотите воспроизвести данные в целях моделирования. |
Документация по функциям членов
QNmeaPositionInfoSource::QNmeaPositionInfoSource(UpdateMode updateMode, QObject *parent = Q_NULLPTR)
Создаёт экземпляр QNmeaPositionInfoSource с заданным parent и updateMode.
QNmeaPositionInfoSource::~QNmeaPositionInfoSource()
Удаляет источник местоположения.
QIODevice *QNmeaPositionInfoSource::device() const
Возвращает источник данных NMEA.
См. также setDevice().
Error QNmeaPositionInfoSource::error() const
Переопределено из QGeoPositionInfoSource::error().
QGeoPositionInfo QNmeaPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const
Переопределено из QGeoPositionInfoSource::lastKnownPosition().
int QNmeaPositionInfoSource::minimumUpdateInterval() const
Переопределено из QGeoPositionInfoSource::minimumUpdateInterval().
[virtual protected] bool QNmeaPositionInfoSource::parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)
Парсит строку NMEA-предложения в QGeoPositionInfo.
Реализация по умолчанию будет парсить стандартные NMEA-предложения. Этот метод должен быть переопределён в подклассе, когда возникает необходимость обработки нестандартных NMEA-предложений.
Парсер считывает size байтов из data и использует эту информацию для настройки posInfo и hasFix. Если hasFix установлено в false, то posInfo может содержать только время или дату и время.
Возвращает true, если предложение было успешно обработано, в противном случае возвращает false и не должно изменять posInfo или hasFix.
[virtual slot] void QNmeaPositionInfoSource::requestUpdate(int msec = 0)
Переопределено из QGeoPositionInfoSource::requestUpdate().
void QNmeaPositionInfoSource::setDevice(QIODevice *device)
Устанавливает источник данных NMEA в device. Если устройство не открыто, оно будет открыто в режиме QIODevice::ReadOnly.
Устройство-источник может быть установлено только один раз и должно быть установлено до вызова startUpdates() или requestUpdate().
Примечание: Устройство device должно излучать сигнал QIODevice::readyRead() для уведомления источника о наличии данных для чтения. QNmeaPositionInfoSource не предполагает владение устройством и, следовательно, не удаляет его при уничтожении.
См. также device().
[virtual] void QNmeaPositionInfoSource::setUpdateInterval(int msec)
Переопределено из QGeoPositionInfoSource::setUpdateInterval().
void QNmeaPositionInfoSource::setUserEquivalentRangeError(double uere)
Устанавливает ошибку эквивалентного радиуса пользователя (UERE) в uere. UERE используется для расчёта оценки точности информации о местоположении, предоставляемой источником информации о местоположении. UERE следует устанавливать в значение, соответствующее устройству GPS, которое генерировало поток NMEA.
Истинное значение UERE вычисляется на основе нескольких источников ошибок, включая ошибки, введённые спутниками и задержками распространения сигнала через атмосферу, а также ошибки, введённые принимающим GPS-оборудованием. Подробнее о точности GPS см. http://edu-observatory.org/gps/gps_accuracy.html.
Типичное значение UERE составляет приблизительно 5,1.
Эта функция была добавлена в Qt 5.3.
См. также userEquivalentRangeError().
[virtual slot] void QNmeaPositionInfoSource::startUpdates()
Переопределено из QGeoPositionInfoSource::startUpdates().
[virtual slot] void QNmeaPositionInfoSource::stopUpdates()
Переопределено из QGeoPositionInfoSource::stopUpdates().
[virtual] PositioningMethods QNmeaPositionInfoSource::supportedPositioningMethods() const
Переопределено из QGeoPositionInfoSource::supportedPositioningMethods().
UpdateMode QNmeaPositionInfoSource::updateMode() const
Возвращает режим обновления.
double QNmeaPositionInfoSource::userEquivalentRangeError() const
Возвращает текущую ошибку эквивалентного радиуса пользователя (UERE). Значение UERE по умолчанию равно NaN, что означает, что информация о точности не будет предоставлена.
Эта функция была добавлена в Qt 5.3.
См. также setUserEquivalentRangeError().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qnmeapositioninfosource.html