Класс QNmeaSatelliteInfoSource
Класс QNmeaSatelliteInfoSource предоставляет информацию о спутниках, используя источник данных NMEA. Подробнее...
| Заголовок: | #include <QNmeaSatelliteInfoSource> |
| CMake: | find_package(Qt6 COMPONENTS Positioning REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Positioning) |
| qmake: | QT += positioning |
| С момента: | Qt 6.2 |
| Наследует: | QGeoSatelliteInfoSource |
Типы публичного доступа
| перечисление классов | UpdateMode { РежимРеальногоВремени, РежимМоделирования } |
Функции публичного доступа
| QNmeaSatelliteInfoSource(QNmeaSatelliteInfoSource::UpdateMode mode, QObject *parent = nullptr) | |
| виртуальный | ~QNmeaSatelliteInfoSource() override |
| QIODevice * | device() const |
| void | setDevice(QIODevice *device) |
| QNmeaSatelliteInfoSource::UpdateMode | updateMode() const |
Переопределённые функции публичного доступа
| виртуальный QVariant | backendProperty(const QString &name) const override |
| виртуальный QGeoSatelliteInfoSource::Error | error() const override |
| виртуальный int | minimumUpdateInterval() const override |
| виртуальный bool | setBackendProperty(const QString &name, const QVariant &value) override |
| виртуальный void | setUpdateInterval(int msec) override |
Свойства публичного доступа
| виртуальный void | requestUpdate(int msec = 0) override |
| виртуальный void | startUpdates() override |
| виртуальный void | stopUpdates() override |
Статические члены публичного доступа
| QString | SimulationUpdateInterval |
Защищённые типы
| перечисление | SatelliteInfoParseStatus { НеОбработан, ЧастичноОбработан, ПолностьюОбработан } |
Защищённые функции
| виртуальный QNmeaSatelliteInfoSource::SatelliteInfoParseStatus | parseSatelliteInfoFromNmea(const char *data, int size, QList<QGeoSatelliteInfo> &infos, QGeoSatelliteInfo::SatelliteSystem &system) |
| виртуальный QGeoSatelliteInfo::SatelliteSystem | parseSatellitesInUseFromNmea(const char *data, int size, QList<int> &pnrsInUse) |
Подробное описание
NMEA — это широко используемый протокол для задания глобального положения в определённый момент времени. Класс QNmeaSatelliteInfoSource считывает данные NMEA и использует их для предоставления информации о видимых спутниках и используемых спутниках в виде списков объектов QGeoSatelliteInfo.
Экземпляр QNmeaSatelliteInfoSource работает в режиме РежимРеальногоВремени или РежимМоделирования. Эти режимы позволяют считывать данные NMEA из живого источника данных или воспроизводить их для целей моделирования из ранее записанных данных NMEA.
Источник данных NMEA задаётся с помощью setDevice().
Используйте startUpdates(), чтобы начать получать регулярные обновления информации о спутниках, и stopUpdates(), чтобы остановить эти обновления. Если вам нужны только периодические обновления, вы можете вызвать requestUpdate(), чтобы запросить одно обновление как видимых спутников, так и используемых спутников.
Информация о видимых спутниках поступает через сигнал satellitesInViewUpdated().
Информация об используемых спутниках поступает через сигнал satellitesInUseUpdated().
Документация по типам членов
перечисление QNmeaSatelliteInfoSource::SatelliteInfoParseStatus
Определяет статус разбора информации о спутниках. Информация о спутниках может быть разбита на несколько предложений, и нам нужно разобрать их все.
| Константа | Значение | Описание |
|---|---|---|
QNmeaSatelliteInfoSource::NotParsed |
0 |
Данные не содержат информации о спутниках. |
QNmeaSatelliteInfoSource::PartiallyParsed |
1 |
Получена и обработана действительная информация о спутнике, но она не полная, поэтому нам нужно подождать следующего предложения NMEA. |
QNmeaSatelliteInfoSource::FullyParsed |
2 |
Информация о спутниках была полностью собрана и обработана. |
перечисление QNmeaSatelliteInfoSource::UpdateMode
Определяет доступные режимы обновления.
| Константа | Значение | Описание |
|---|---|---|
QNmeaSatelliteInfoSource::UpdateMode::RealTimeMode |
1 |
Информация о спутниках считывается и распространяется из источника данных по мере её появления. Используйте этот режим, если вы используете живой источник данных NMEA (например, устройство GPS). |
QNmeaSatelliteInfoSource::UpdateMode::SimulationMode |
2 |
Информация о спутниках считывается и распространяется из источника данных с заданной скоростью. Скорость определяется параметром SimulationUpdateInterval. Используйте этот режим, если источник данных содержит ранее записанные данные NMEA, и вы хотите воспроизвести данные для целей моделирования. |
Документация по функциям членов
QNmeaSatelliteInfoSource::QNmeaSatelliteInfoSource(QNmeaSatelliteInfoSource::UpdateMode mode, QObject *parent = nullptr)
Конструирует экземпляр QNmeaSatelliteInfoSource с заданным parent и mode.
Запрос обновленияvoid QNmeaSatelliteInfoSource::requestUpdate(int msec = 0)
Переопределяет: QGeoSatelliteInfoSource::requestUpdate(int timeout).
Начать обновленияvoid QNmeaSatelliteInfoSource::startUpdates()
Переопределяет: QGeoSatelliteInfoSource::startUpdates().
Остановить обновленияvoid QNmeaSatelliteInfoSource::stopUpdates()
Переопределяет: QGeoSatelliteInfoSource::stopUpdates().
Деструктор~QNmeaSatelliteInfoSource()
Удаляет источник информации о спутниках.
[override virtual] QVariant QNmeaSatelliteInfoSource::backendProperty(const QString &name) const
Реализует: QGeoSatelliteInfoSource::backendProperty(const QString &name) const.
См. также setBackendProperty().
QIODevice *QNmeaSatelliteInfoSource::device() const
Возвращает источник данных NMEA.
См. также setDevice().
[override virtual] QGeoSatelliteInfoSource::Error QNmeaSatelliteInfoSource::error() const
Реализует: QGeoSatelliteInfoSource::error() const.
[override virtual] int QNmeaSatelliteInfoSource::minimumUpdateInterval() const
Реализует функцию доступа к свойству: QGeoSatelliteInfoSource::minimumUpdateInterval.
[virtual protected] QNmeaSatelliteInfoSource::SatelliteInfoParseStatus QNmeaSatelliteInfoSource::parseSatelliteInfoFromNmea(const char *data, int size, QList<QGeoSatelliteInfo> &infos, QGeoSatelliteInfo::SatelliteSystem &system)
Парсит строку предложения NMEA, чтобы извлечь информацию о спутниках в поле зрения.
По умолчанию реализация парсит стандартные предложения NMEA $GPGSV. Этот метод следует переопределять в подклассе, когда возникает необходимость обработки нестандартных предложений NMEA.
Парсер считывает size байтов из data и использует эту информацию для заполнения списка infos.
Возвращает SatelliteInfoParseStatus с результатом парсинга. Модифицирует список infos в случае, если возвращается PartiallyParsed или FullyParsed. Также устанавливает system в правильный тип системы спутников. Это необходимо для определения типа системы в случае отсутствия спутников в поле зрения.
[virtual protected] QGeoSatelliteInfo::SatelliteSystem QNmeaSatelliteInfoSource::parseSatellitesInUseFromNmea(const char *data, int size, QList<int> &pnrsInUse)
Парсит строку предложения NMEA, чтобы извлечь идентификаторы используемых спутников.
По умолчанию реализация парсит стандартные предложения NMEA $GPGSA. Этот метод следует переопределять в подклассе, когда возникает необходимость обработки нестандартных предложений NMEA.
Парсер считывает size байтов из data и использует эту информацию для заполнения списка pnrsInUse.
Возвращает тип системы, если предложение было успешно распарсено, в противном случае возвращает QGeoSatelliteInfo::Undefined и не должно модифицировать pnrsInUse.
[override virtual] bool QNmeaSatelliteInfoSource::setBackendProperty(const QString &name, const QVariant &value)
Реализует: QGeoSatelliteInfoSource::setBackendProperty(const QString &name, const QVariant &value).
См. также backendProperty().
void QNmeaSatelliteInfoSource::setDevice(QIODevice *device)
Устанавливает источник данных NMEA в device. Если устройство не открыто, оно будет открыто в режиме QIODevice::ReadOnly.
Источник устройства может быть установлен только один раз и должен быть установлен перед вызовом startUpdates() или requestUpdate().
Примечание: device должен излучать QIODevice::readyRead() для уведомления источника, когда данные доступны для чтения. QNmeaSatelliteInfoSource не предполагает владения устройством и, следовательно, не освобождает его при уничтожении.
См. также device().
[override virtual] void QNmeaSatelliteInfoSource::setUpdateInterval(int msec)
Реализует функцию доступа к свойству: QGeoSatelliteInfoSource::updateInterval.
QNmeaSatelliteInfoSource::UpdateMode QNmeaSatelliteInfoSource::updateMode() const
Возвращает режим обновления.
Документация по переменным-членам
QString QNmeaSatelliteInfoSource::SimulationUpdateInterval
Эта переменная хранит имя свойства бэкенда для частоты чтения данных в режиме SimulationMode. Значение этого свойства — целое число, представляющее количество миллисекунд между последующими чтениями. Используйте этот параметр в методах setBackendProperty() и backendProperty().
Примечание: Это свойство отличается от интервала, который можно установить с помощью setUpdateInterval(). Значение, установленное с помощью setUpdateInterval(), обозначает интервал для уведомления пользователя, в то время как этот параметр определяет внутреннюю частоту чтения данных из источника файла. Это означает, что можно иметь несколько (или ни одного) чтений в течение периода updateInterval().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qnmeasatelliteinfosource.html