Spec-Zone.ru › Qt

Класс QNmeaPositionInfoSource

Класс QNmeaPositionInfoSource предоставляет информацию о местоположении, используя источник данных NMEA. Подробнее...

Заголовок: #include <QNmeaPositionInfoSource>
CMake: find_package(Qt6 COMPONENTS Positioning REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake: QT += positioning
С момента: Qt 5.2
Наследует: QGeoPositionInfoSource
  • Список всех членов, включая унаследованные

Открытые типы

перечисление UpdateMode { РежимРеальногоВремени, РежимМоделирования }

Открытые функции

QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)
виртуальный ~QNmeaPositionInfoSource()
QIODevice * device() const
void setDevice(QIODevice *device)
void setUserEquivalentRangeError(double uere)
QNmeaPositionInfoSource::UpdateMode updateMode() const
double userEquivalentRangeError() const

Переопределенные открытые функции

виртуальный QGeoPositionInfoSource::Error error() const override
виртуальный QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const override
виртуальный int minimumUpdateInterval() const override
виртуальный void setUpdateInterval(int msec) override
виртуальный QGeoPositionInfoSource::PositioningMethods supportedPositioningMethods() const override

Открытые слоты

виртуальный void requestUpdate(int msec = 0) override
виртуальный void startUpdates() override
виртуальный void stopUpdates() override

Защищенные функции

виртуальный bool parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)

Подробное описание

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(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)

Конструирует экземпляр QNmeaPositionInfoSource с заданным parent и updateMode.

[override virtual slot] void QNmeaPositionInfoSource::requestUpdate(int msec = 0)

Переопределяет: QGeoPositionInfoSource::requestUpdate(int timeout).

[override virtual slot] void QNmeaPositionInfoSource::startUpdates()

Переопределяет: QGeoPositionInfoSource::startUpdates().

[override virtual slot] void QNmeaPositionInfoSource::stopUpdates()

Переопределяет: QGeoPositionInfoSource::stopUpdates().

[virtual] QNmeaPositionInfoSource::~QNmeaPositionInfoSource()

Уничтожает источник местоположения.

QIODevice *QNmeaPositionInfoSource::device() const

Возвращает источник данных NMEA.

См. также setDevice().

[override virtual] QGeoPositionInfoSource::Error QNmeaPositionInfoSource::error() const

Переопределяет: QGeoPositionInfoSource::error() const.

[override virtual] QGeoPositionInfo QNmeaPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const

Переопределяет: QGeoPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly) const.

[override virtual] 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.

void QNmeaPositionInfoSource::setDevice(QIODevice *device)

Устанавливает источник данных NMEA в device. Если устройство не открыто, оно будет открыто в режиме QIODevice::ReadOnly.

Источник устройства может быть установлен только один раз и должен быть установлен перед вызовом startUpdates() или requestUpdate().

Примечание: устройство device должно излучать QIODevice::readyRead() для того, чтобы источник получал уведомления о наличии данных для чтения. QNmeaPositionInfoSource не предполагает владения устройством и, следовательно, не удаляет его при уничтожении.

См. также device().

[override virtual] void QNmeaPositionInfoSource::setUpdateInterval(int msec)

Реализует функцию доступа к свойству: QGeoPositionInfoSource::updateInterval.

[since 5.3] void QNmeaPositionInfoSource::setUserEquivalentRangeError(double uere)

Устанавливает ошибку эквивалентного диапазона пользователя (UERE) в uere. UERE используется для расчета оценки точности информации о местоположении, предоставляемой источником информации о местоположении. Значение UERE должно быть установлено в значение, соответствующее устройству GPS, которое сгенерировало поток NMEA.

Истинное значение UERE рассчитывается по нескольким источникам ошибок, включая ошибки, вносимые спутниками и задержками распространения сигнала через атмосферу, а также ошибки, вносимые принимающим оборудованием GPS. Подробную информацию о точности GPS см. в Sam J. Wormley, GPS Errors & Estimating Your Reveiver's Accuracy.

Типичное значение UERE составляет приблизительно 5,1.

Эта функция была добавлена в Qt 5.3.

См. также userEquivalentRangeError().

[override virtual] QGeoPositionInfoSource::PositioningMethods QNmeaPositionInfoSource::supportedPositioningMethods() const

Реализует: QGeoPositionInfoSource::supportedPositioningMethods() const.

QNmeaPositionInfoSource::UpdateMode QNmeaPositionInfoSource::updateMode() const

Возвращает режим обновления.

[since 5.3] 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/qt-6.2/qnmeapositioninfosource.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API