Класс QSensor
Класс QSensor представляет собой отдельный аппаратный датчик. Подробнее...
| Заголовок: | #include <QSensor> |
| qmake: | QT += sensors |
| С версии: | Qt 5.1 |
| Наследует: | QObject |
| Наследуется: | QAccelerometer, QAltimeter, QAmbientLightSensor, QAmbientTemperatureSensor, QCompass, QDistanceSensor, QGyroscope, QHolsterSensor, QHumiditySensor, QIRProximitySensor, QLidSensor, QLightSensor, QMagnetometer, QOrientationSensor, QPressureSensor, QProximitySensor, QRotationSensor, QTapSensor, и QTiltSensor |
Этот класс был добавлен в Qt 5.1.
Публичные типы
| перечисление | AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation } |
| перечисление | Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, ..., AxesOrientation } |
Свойства
|
|
Открытые функции
| QSensor(const QByteArray &type, QObject *parent = Q_NULLPTR) | |
| виртуальный | ~QSensor() |
| void | addFilter(QSensorFilter *filter) |
| qrangelist | availableDataRates() const |
| QSensor::AxesOrientationMode | axesOrientationMode() const |
| int | bufferSize() const |
| bool | connectToBackend() |
| int | currentOrientation() const |
| int | dataRate() const |
| QString | description() const |
| int | efficientBufferSize() const |
| int | error() const |
| QList<QSensorFilter *> | filters() const |
| QByteArray | identifier() const |
| bool | isActive() const |
| bool | isAlwaysOn() const |
| bool | isBusy() const |
| bool | isConnectedToBackend() const |
| bool | isFeatureSupported(QSensor::Feature feature) const |
| int | maxBufferSize() const |
| int | outputRange() const |
| qoutputrangelist | outputRanges() const |
| QSensorReading * | reading() const |
| void | removeFilter(QSensorFilter *filter) |
| void | setActive(bool active) |
| void | setAlwaysOn(bool alwaysOn) |
| void | setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode) |
| void | setBufferSize(int bufferSize) |
| void | setCurrentOrientation(int currentOrientation) |
| void | setDataRate(int rate) |
| void | setEfficientBufferSize(int efficientBufferSize) |
| void | setIdentifier(const QByteArray &identifier) |
| void | setMaxBufferSize(int maxBufferSize) |
| void | setOutputRange(int index) |
| void | setSkipDuplicates(bool skipDuplicates) |
| void | setUserOrientation(int userOrientation) |
| bool | skipDuplicates() const |
| QByteArray | type() const |
| int | userOrientation() const |
Открытые слоты
| bool | start() |
| void | stop() |
Сигналы
| void | activeChanged() |
| void | alwaysOnChanged() |
| void | availableSensorsChanged() |
| void | axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode) |
| void | bufferSizeChanged(int bufferSize) |
| void | busyChanged() |
| void | currentOrientationChanged(int currentOrientation) |
| void | dataRateChanged() |
| void | efficientBufferSizeChanged(int efficientBufferSize) |
| void | maxBufferSizeChanged(int maxBufferSize) |
| void | readingChanged() |
| void | sensorError(int error) |
| void | skipDuplicatesChanged(bool skipDuplicates) |
| void | userOrientationChanged(int userOrientation) |
Статические публичные члены
| QByteArray | defaultSensorForType(const QByteArray &type) |
| QList<QByteArray> | sensorTypes() |
| QList<QByteArray> | sensorsForType(const QByteArray &type) |
Связанные нечлены
| typedef | qoutputrangelist |
| typedef | qrange |
| typedef | qrangelist |
Подробное описание
Жизненный цикл датчика обычно следующий:
- Создайте подкласс QSensor в стеке или куче.
- Настройте его в соответствии с требованиями приложения.
- Начните получение значений.
- Данные датчика используются приложением.
- Прекратите получение значений.
Данные датчика передаются с помощью QSensorReading и его подклассов.
Ориентация
Некоторые датчики реагируют на изменения ориентации экрана, такие как QAccelerometer, QMagnetometer и QRotationSensor. Это так называемые ориентируемые датчики. Для ориентируемых датчиков QSensor поддерживает изменение отчётов значений считывания в зависимости от ориентации экрана.
Для ориентируемых датчиков свойство axesOrientationMode управляет тем, как ориентация влияет на значения считывания.
В режиме по умолчанию QSensor::FixedOrientation значения считывания не изменяются в зависимости от ориентации. В режиме QSensor::AutomaticOrientation значения считывания автоматически вращаются с учётом текущей ориентации экрана. И, наконец, в режиме QSensor::UserOrientation значения считывания вращаются в соответствии с заданной пользователем ориентацией.
Функциональность доступна только в том случае, если она поддерживается бэкендом и если датчик является ориентируемым, что можно проверить с помощью QSensor::isFeatureSupported() с флагом QSensor::AxesOrientation.
Значения ориентации здесь всегда относятся к ориентации экрана, а не к ориентации устройства. Ориентация экрана — это ориентация графического интерфейса пользователя. Например, при повороте устройства на 90 градусов против часовой стрелки ориентация экрана компенсирует это, поворачивая на 90 градусов по часовой стрелке, так что графический интерфейс пользователя по-прежнему будет ориентирован вертикально после поворота устройства. Обратите внимание, что приложения могут блокировать ориентацию экрана, например, для принудительного режима портрета или ландшафта. При заблокированных ориентациях ориентируемые датчики не будут реагировать изменениями считывания, если ориентация устройства изменится, так как ориентируемые датчики реагируют только на изменения ориентации экрана. Это имеет смысл, так как цель ориентируемых датчиков — поддерживать ориентацию датчика синхронизированной с ориентацией экрана.
Значения ориентации находятся в диапазоне от 0 до 270 градусов. Ориентация применяется по часовой стрелке, например, значение ориентации 90 градусов означает, что экран был повернут на 90 градусов вправо от его исходного положения, для компенсации поворота устройства на 90 градусов влево.
См. также QSensorReading.
Документация типов членов
enum QSensor::AxesOrientationMode
Описывает, как значения считывания влияют на ориентацию экрана.
| Константа | Значение | Описание |
|---|---|---|
QSensor::FixedOrientation |
0 |
Автоматическое вращение значений считывания не применяется. |
QSensor::AutomaticOrientation |
1 |
Значения считывания автоматически вращаются в зависимости от ориентации экрана. |
QSensor::UserOrientation |
2 |
Значения считывания вращаются в зависимости от угла свойства userOrientation. |
Этот перечисление был введён или изменён в Qt 5.1.
См. также QSensor::axesOrientationMode.
enum QSensor::Feature
Список дополнительных функций, которые может поддерживать бэкенд.
Функции, общие для всех типов датчиков:
| Константа | Значение | Описание |
|---|---|---|
QSensor::Buffering |
0 |
Бэкенд поддерживает буферизацию считываний, управляемую свойством QSensor::bufferSize. |
QSensor::AlwaysOn |
1 |
Бэкенд поддерживает изменение политики приостановки при бездействии, управляемой свойством QSensor::alwaysOn. |
QSensor::SkipDuplicates |
5 |
Бэкенд поддерживает пропуск одинаковых или очень похожих последовательных считываний. Это можно включить, установив свойство QSensor::skipDuplicates в значение true. |
Функции QMagnetometer:
| Константа | Значение | Описание |
|---|---|---|
QSensor::GeoValues |
2 |
Бэкенд поддерживает возвращение гео-значений, которые можно контролировать с помощью свойства QMagnetometer::returnGeoValues. |
Функции QLightSensor:
| Константа | Значение | Описание |
|---|---|---|
QSensor::FieldOfView |
3 |
Бэкенд указывает своё поле зрения, которое можно прочитать из свойства QLightSensor::fieldOfView. |
Функции QAccelerometer:
| Константа | Значение | Описание |
|---|---|---|
QSensor::AccelerationMode |
4 |
Бэкенд поддерживает изменение режима ускорения акселерометра с помощью свойства QAccelerometer::accelerationMode. |
Функции QPressureSensor:
| Постоянная | Значение | Описание |
|---|---|---|
QSensor::PressureSensorTemperature |
7 |
Серверная часть предоставляет температуру кристалла датчика давления. |
Особенности всех ориентируемых датчиков:
| Постоянная | Значение | Описание |
|---|---|---|
QSensor::AxesOrientation |
6 |
Серверная часть поддерживает изменение ориентации осей от значения по умолчанию QSensor::FixedOrientation на другое. |
Этот перечисление был введён или изменён в Qt 5.0.
См. также QSensor::isFeatureSupported().
Документация по свойствам
active : bool
Это свойство хранит значение, указывающее, активен ли датчик.
Значение true означает, что датчик активен (возвращает значения). В противном случае — false.
Обратите внимание, что установка этого значения в true не окажет немедленного эффекта. Датчик будет запущен после достижения цикла событий.
Функции доступа:
| bool | isActive() const |
| void | setActive(bool active) |
Сигнал уведомления:
| void | activeChanged() |
alwaysOn : bool
Это свойство хранит значение, указывающее, должен ли датчик продолжать работу, когда экран выключен.
На некоторых платформах применяется политика приостановки работы датчиков при выключении экрана. Установка этого свойства в true гарантирует, что датчик будет продолжать работу.
Функции доступа:
| bool | isAlwaysOn() const |
| void | setAlwaysOn(bool alwaysOn) |
Сигнал уведомления:
| void | alwaysOnChanged() |
availableDataRates : const qrangelist
Это свойство хранит скорости передачи данных, которые поддерживает датчик.
Это список скоростей передачи данных, поддерживаемых датчиком. Измеряется в герцах.
Элементы списка могут представлять дискретные скорости или непрерывный диапазон скоростей. Дискретная скорость обозначается одинаковыми значениями.
См. пример sensor_explorer для примера того, как интерпретировать и использовать эту информацию.
Обратите внимание, что эта информация не является обязательной, так как не все датчики имеют скорость, с которой они работают. В таких случаях список будет пустым.
Функции доступа:
| qrangelist | availableDataRates() const |
См. также QSensor::dataRate и qrangelist.
axesOrientationMode : AxesOrientationMode
Это свойство хранит режим, который влияет на то, как изменение ориентации экрана изменяет значения считывания.
При установке в FixedOrientation, который является режимом по умолчанию, автоматическое вращение к считыванию не применяется. Это единственный доступный режим для бэкэндов, которые не поддерживают функцию QSensor::AxesOrientation.
При установке в AutomaticOrientation, значения считывания автоматически поворачиваются при изменении ориентации экрана. По сути, ориентация экрана компенсируется.
Например, предположим, что устройство повернуто на 180 градусов, и поэтому ориентация экрана также повернута на 180 градусов от родной ориентации. Без автоматической ориентации осей значения считывания теперь будут изменены: как значения X, так и Y будут инвертированы, заставляя разработчика приложения вручную компенсировать инверсию в коде приложения. Автоматическая ориентация осей делает это автоматически, в этом режиме значения X и Y будут такими же, как и при ориентации экрана по умолчанию.
Это автоматическое вращение осей удобно в некоторых случаях использования, например, в приложении уровня пузырька, которое измеряет, насколько ровна поверхность, глядя на значение оси X акселерометра. Когда устройство и ориентация экрана меняются на 90 градусов, разработчику приложения ничего менять не нужно, он может продолжать использовать значение оси X, даже если устройство повернуто. Без автоматической ориентации осей разработчику приложения нужно было бы вместо этого смотреть на значения Y, тем самым добавляя в приложение код, который считывает с другой оси в зависимости от ориентации экрана.
Режим UserOrientation очень похож на AutomaticOrientation, только ориентация экрана управляется вручную, а не определяется автоматически. Угол свойства userOrientation затем используется для вращения значений считывания.
Поскольку вращение значений считывания основано на ориентации экрана, значения Z никогда не изменятся, поскольку ось Z перпендикулярна экрану. Поскольку ориентация экрана меняется с шагом 90 градусов, вращение значений считывания также выполняется с шагом 90 градусов.
Это свойство используется только для ориентируемых датчиков.
Это свойство было введено в Qt 5.1.
Функции доступа:
| QSensor::AxesOrientationMode | axesOrientationMode() const |
| void | setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode) |
Сигнал уведомления:
| void | axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode) |
bufferSize : int
Это свойство хранит размер буфера. По умолчанию размер буфера равен 1, что означает отсутствие буферизации. Если максимальный размер буфера равен 1, то буферизация не поддерживается датчиком.
Установка bufferSize больше, чем maxBufferSize, приведет к использованию maxBufferSize.
Буферизация включается, когда bufferSize больше 1. Датчик соберет запрошенное количество выборок и передаст их все приложению одновременно. Они будут доставлены в приложение как пакет измененных показаний, поэтому особенно важно, чтобы приложение немедленно обрабатывало каждое показание или сохраняло значения где-нибудь еще.
Если вызывается stop() во время буферизации, частичный буфер не доставляется.
Когда датчик запускается с опцией буферизации, значения собираются с этого момента. Нет предварительно существующего буфера, который можно было бы использовать.
Некоторые бэкэнды поддерживают только включение или отключение буфера и не предоставляют управления размером. В этом случае свойства maxBufferSize и efficientBufferSize могут вообще не устанавливаться, даже если буферизация поддерживается. Установка свойства bufferSize в любое значение больше 1 включит буферизацию. После запуска датчика свойство bufferSize будет установлено в фактическое значение бэкэндом.
Функции доступа:
| int | bufferSize() const |
| void | setBufferSize(int bufferSize) |
Сигнал уведомления:
| void | bufferSizeChanged(int bufferSize) |
См. также QSensor::maxBufferSize и QSensor::efficientBufferSize.
busy : const bool
Это свойство хранит значение, указывающее, занят ли датчик.
Некоторые датчики могут быть в системе, но недоступны для использования. Эта функция вернет true, если датчик занят. Вы не сможете start() датчик.
Обратите внимание, что эта функция не возвращает true, если вы используете датчик, а только если датчик используется другим процессом.
Функции доступа:
| bool | isBusy() const |
См. также busyChanged().
connectedToBackend : const bool
Это свойство хранит значение, указывающее, подключен ли датчик к бэкэнду.
Датчик, который не был подключен к бэкэнду, не может выполнять полезные действия.
Вызовите метод connectToBackend() для принудительного подключения датчика к бэкэнду немедленно. Это вызывается автоматически, если вы вызываете start(), поэтому вам нужно делать это только в том случае, если вам нужен доступ к свойствам датчика (например, для опроса метаданных датчика перед его использованием).
Функции доступа:
| bool | isConnectedToBackend() const |
currentOrientation : const int
Это свойство хранит текущую ориентацию, которая используется для вращения значений считывания.
Это может не совпадать с ориентацией экрана. Например, в режиме FixedOrientation значения считывания не вращаются, и поэтому свойство равно 0.
В режиме UserOrientation показания вращаются на основе свойства userOrientation, и поэтому это свойство равно свойству userOrientation.
В режиме AutomaticOrientation, показания вращаются в зависимости от ориентации экрана, поэтому данное свойство будет равно текущей ориентации экрана.
Это свойство устанавливается бэкэндом и является допустимым только для сенсоров, которые могут изменять ориентацию.
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| int | currentOrientation() const |
Сигнал уведомления:
| void | currentOrientationChanged(int currentOrientation) |
dataRate : int
Это свойство содержит частоту данных, с которой должен работать сенсор.
Измеряется в Герцах.
Частота данных — это максимальная частота, с которой сенсор может обнаруживать изменения.
Установка этого свойства не является переносимой и может вызвать конфликты с другими приложениями. Проверьте документацию бэкэнда сенсора и платформы на предмет политики, касающейся множественных приложений, запрашивающих частоту данных.
Значение по умолчанию (0) означает, что приложение не заботится о частоте данных. Приложения должны рассмотреть использование таймера для опроса текущего значения или убедиться, что код, обрабатывающий значения, может работать очень быстро, так как платформа может предоставлять обновления сотни раз в секунду.
Это свойство должно быть установлено перед вызовом start(), так как сенсор может не заметить изменений в этом значении во время работы.
Обратите внимание, что нет механизма для определения текущей частоты данных, используемой платформой.
Функции доступа:
| int | dataRate() const |
| void | setDataRate(int rate) |
Сигнал уведомления:
| void | dataRateChanged() |
См. также QSensor::availableDataRates.
description : const QString
Это свойство содержит строку описания для сенсора.
Функции доступа:
| QString | description() const |
efficientBufferSize : const int
Свойство содержит наиболее эффективный размер буфера. Обычно это 1 (что означает, что нет наиболее эффективного размера). Некоторые драйверы сенсоров имеют буфер FIFO, который делает более эффективной доставку значений из FIFO за один раз.
Функции доступа:
| int | efficientBufferSize() const |
Сигнал уведомления:
| void | efficientBufferSizeChanged(int efficientBufferSize) |
См. также QSensor::bufferSize и QSensor::maxBufferSize.
error : const int
Это свойство содержит последний код ошибки, установленный для сенсора.
Обратите внимание, что коды ошибок специфичны для сенсора.
Функции доступа:
| int | error() const |
Сигнал уведомления:
| void | sensorError(int error) |
identifier : QByteArray
Это свойство содержит идентификатор бэкэнда для сенсора.
Обратите внимание, что идентификатор заполняется автоматически при подключении сенсора к бэкэнду. Если вы хотите подключить определенный бэкэнд, вы должны вызвать setIdentifier() перед connectToBackend().
Функции доступа:
| QByteArray | identifier() const |
| void | setIdentifier(const QByteArray &identifier) |
maxBufferSize : const int
Свойство содержит максимальный размер буфера.
Обратите внимание, что это может быть 1, в этом случае сенсор не поддерживает никакую форму буферизации. В этом случае isFeatureSupported(QSensor::Buffering) также вернёт false.
Функции доступа:
| int | maxBufferSize() const |
Сигнал уведомления:
| void | maxBufferSizeChanged(int maxBufferSize) |
См. также QSensor::bufferSize и QSensor::efficientBufferSize.
outputRange : int
Это свойство содержит используемый сенсором диапазон вывода.
Это значение представляет собой индекс в списке QSensor::outputRanges, который следует использовать.
Установка этого свойства не является переносимой и может вызвать конфликты с другими приложениями. Проверьте документацию бэкэнда сенсора и платформы на предмет политики, касающейся множественных приложений, запрашивающих диапазон вывода.
Значение по умолчанию (-1) означает, что приложение не заботится о диапазоне вывода.
Обратите внимание, что нет механизма для определения текущего диапазона вывода, используемого платформой.
Функции доступа:
| int | outputRange() const |
| void | setOutputRange(int index) |
См. также QSensor::outputRanges.
outputRanges : const qoutputrangelist
Это свойство содержит список диапазонов вывода, поддерживаемых сенсором.
Сенсор может иметь более одного диапазона вывода. Обычно это делается для обеспечения большего диапазона измерений за счет снижения точности.
Обратите внимание, что эта информация не является обязательной. Эта информация обычно доступна только для сенсоров, которые имеют выбираемые диапазоны вывода (таких как типичные акселерометры).
Функции доступа:
| qoutputrangelist | outputRanges() const |
См. также QSensor::outputRange и qoutputrangelist.
reading : QSensorReading* const
Это свойство содержит класс показаний.
Класс показаний предоставляет доступ к показаниям сенсора. Объект показаний — это переменная кэшированная копия последних полученных показаний сенсора, поэтому приложение должно обрабатывать показания немедленно или сохранять значения где-нибудь для последующей обработки.
Обратите внимание, что это вернёт 0 до тех пор, пока бэкэнд сенсора не будет подключен.
Также обратите внимание, что показания не становятся доступными сразу после вызова start(). Приложения должны дождаться, пока не будет выпущен сигнал readingChanged().
Функции доступа:
| QSensorReading * | reading() const |
Сигнал уведомления:
| void | readingChanged() |
См. также isConnectedToBackend() и start().
skipDuplicates : bool
Указывает, следует ли пропускать дублирующиеся значения показаний.
Когда включено пропускание дубликатов, последовательные показания с одинаковыми или очень похожими значениями пропускаются. Это помогает уменьшить объём обработки, так как доступно меньше показаний сенсора. Вследствие этого, показания приходят с нерегулярным интервалом.
Пропускание дубликатов включает не только точные совпадения, но и значения, которые очень похожи, так как каждый сенсор имеет некоторую степень джиттера, даже если устройство не перемещается.
Поддержка этого свойства зависит от бэкэнда. Используйте isFeatureSupported(), чтобы проверить, поддерживается ли она на текущей платформе.
Пропускание дубликатов отключено по умолчанию.
Пропускание дубликатов вступает в силу при запуске сенсора, изменение свойства во время работы сенсора не оказывает немедленного влияния.
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| bool | skipDuplicates() const |
| void | setSkipDuplicates(bool skipDuplicates) |
Сигнал уведомления:
| void | skipDuplicatesChanged(bool skipDuplicates) |
type : const QByteArray
Это свойство содержит тип датчика.
Функции доступа:
| QByteArray | type() const |
userOrientation : int
Это свойство содержит угол, используемый для поворота значений считывания в режиме UserOrientation.
Когда свойство axesOrientationMode установлено в UserOrientation, угол для поворота значений считывания берется из этого свойства. В других режимах свойство не оказывает влияния.
Значение по умолчанию равно 0. Единственно допустимые значения — 0, 90, 180 и 270, так как это единственные возможные ориентации экрана.
Это свойство является допустимым только для ориентируемых датчиков.
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| int | userOrientation() const |
| void | setUserOrientation(int userOrientation) |
Сигнал уведомления:
| void | userOrientationChanged(int userOrientation) |
Документация по членам-функциям
QSensor::QSensor(const QByteArray &type, QObject *parent = Q_NULLPTR)
Создает датчик type как дочерний элемент parent.
Не используйте этот конструктор, если для конкретного типа датчика существует производный класс.
Неправильный способ:
QSensor *magnetometer = new QSensor(QMagnetometer::type, this);
Правильный способ:
QMagnetometer *magnetometer = new QMagnetometer(this);
Производные классы имеют дополнительные свойства и члены данных, необходимые для определенных функций, таких как поддержка геозначений в QMagnetometer или поддержка режима ускорения в QAccelerometer. Эти функции будут работать правильно только при создании экземпляра датчика из подкласса QSensor.
Используйте этот конструктор только в том случае, если доступен ни один производный класс датчика. Обратите внимание, что все встроенные датчики имеют производный класс, поэтому использование этого конструктора необходимо только при реализации пользовательских датчиков, как в примере датчика Grue.
[signal] void QSensor::activeChanged()
Этот сигнал излучается, когда изменяется свойство QSensor::active.
Примечание: Сигнал уведомления для свойства active.
См. также QSensor::active.
[signal] void QSensor::alwaysOnChanged()
Этот сигнал излучается при изменении свойства alwaysOn.
Примечание: Сигнал уведомления для свойства alwaysOn.
[signal] void QSensor::availableSensorsChanged()
Этот сигнал излучается, когда список доступных датчиков изменяется. Датчики, доступные программе, обычно не изменяются со временем, однако некоторые из доступных датчиков могут представлять собой оборудование, которое не постоянно подключено. Например, игровой контроллер, подключенный по Bluetooth, станет доступным, когда он включен, и станет недоступным, когда он выключен.
См. также QSensor::sensorTypes() и QSensor::sensorsForType().
[signal] void QSensor::busyChanged()
Этот сигнал излучается, когда датчик больше не занят. Это можно использовать для захвата датчика, когда он становится доступным.
sensor.start();
if (sensor.isBusy()) {
// need to wait for busyChanged signal and try again
}
[signal] void QSensor::readingChanged()
Этот сигнал излучается при получении нового считывания датчика.
Данные считывания датчика можно найти в свойстве QSensor::reading. Обратите внимание, что объект считывания — это кэшируемое значение последнего полученного считывания датчика, поэтому приложение должно обработать считывание немедленно или сохранить значения для последующей обработки.
Перед тем, как этот сигнал был испущен в первый раз, объект чтения будет содержать неинициализированные данные.
Примечание: Сигнал уведомления для свойства reading.
См. также start().
[signal] void QSensor::sensorError(int error)
Этот сигнал излучается, когда для датчика устанавливается код ошибки error. Обратите внимание, что некоторые ошибки приведут к остановке работы датчика. Вы должны вызвать isActive(), чтобы определить, все еще работает ли датчик.
Примечание: Сигнал уведомления для свойства error.
[signal] void QSensor::skipDuplicatesChanged(bool skipDuplicates)
Этот сигнал излучается, когда изменяется свойство skipDuplicates.
Эта функция была добавлена в Qt 5.1.
Примечание: Сигнал уведомления для свойства skipDuplicates.
[slot] bool QSensor::start()
Начать получение значений от датчика. Возвращает true, если датчик был запущен, и false в противном случае.
Датчик может не запуститься по нескольким причинам.
После запуска датчика приложение должно дождаться, пока датчик получит новое значение, прежде чем запрашивать значения датчика. Это связано с тем, как датчик получает значения от системы. Датчики (вообще) не опрашивают новые значения, а новые значения передаются датчикам по мере их появления.
Например, этот код не будет работать как ожидается.
sensor->start(); sensor->reading()->x(); // no data available
Для корректной работы код, который обращается к считыванию, должен убедиться, что сигнал readingChanged() был излучён.
connect(sensor, SIGNAL(readingChanged()), this, SLOT(checkReading()));
sensor->start();
}
void MyClass::checkReading() {
sensor->reading()->x();
См. также QSensor::busy.
[slot] void QSensor::stop()
Остановить получение значений от датчика.
Это освобождает датчик, чтобы другие процессы могли его использовать.
См. также QSensor::busy.
[virtual] QSensor::~QSensor()
Уничтожить датчик. Останавливает датчик, если он ещё не остановлен.
void QSensor::addFilter(QSensorFilter *filter)
Добавить filter к датчику.
Датчик не принимает владения фильтром. QSensorFilter сообщит датчику, если он уничтожен.
См. также QSensorFilter.
bool QSensor::connectToBackend()
Попытаться подключиться к бэкенду датчика.
Возвращает true, если подходящий бэкенд был найден, и false в противном случае.
Тип должен быть установлен перед вызовом этого метода, если вы используете QSensor напрямую.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также isConnectedToBackend().
[static] QByteArray QSensor::defaultSensorForType(const QByteArray &type)
Возвращает идентификатор датчика по умолчанию для type. Это устанавливается в файле конфигурации и может быть переопределено при необходимости. Если значение по умолчанию недоступно, система вернёт первый зарегистрированный датчик для type.
Обратите внимание, что существует специальная логика, чтобы предотвратить превращение бэкэндов общего плагина в значения по умолчанию, когда для того же типа зарегистрирован другой бэкенд. Эта логика означает, что идентификатор бэкенда, начинающийся с generic. будет значением по умолчанию только в том случае, если для этого типа не зарегистрированы другие бэкэнды, или если он указан в Sensors.conf.
См. также Определение датчика по умолчанию для определённого типа.
QList<QSensorFilter *> QSensor::filters() const
Возвращает фильтры, в настоящее время подключённые к датчику.
См. также QSensorFilter.
bool QSensor::isFeatureSupported(QSensor::Feature feature) const
Проверяет, поддерживается ли конкретная функция бэкэндом.
QtSensors поддерживает богатый API для управления и предоставления информации о датчиках. Естественно, не все эти функции могут поддерживаться всеми бэкэндами.
Чтобы проверить, поддерживает ли текущий бэкенд функцию feature, вызовите эту функцию.
Для подключения бэкенда необходимо выполнить подключение, в противном случае будет возвращено false. Вызов connectToBackend() или start() создаст подключение к бэкенду.
Бэкенды должны реализовывать QSensorBackend::isFeatureSupported(), чтобы это работало.
Возвращает, поддерживается ли функция, если бэкенд подключен, или false, если бэкенд не подключен.
Эта функция была введена в Qt 5.0.
Примечание: К этой функции можно обратиться через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QSensor::removeFilter(QSensorFilter *filter)
Удаляет filter из сенсора.
См. также QSensorFilter.
[static] QList<QByteArray> QSensor::sensorTypes()
Возвращает список всех типов датчиков.
[static] QList<QByteArray> QSensor::sensorsForType(const QByteArray &type)
Возвращает список идентификаторов каждого датчика для типа type. Если датчиков данного типа нет, список будет пустым.
void QSensor::setCurrentOrientation(int currentOrientation)
Устанавливает текущую ориентацию экрана на currentOrientation. Это необходимо вызывать из бэкенда всякий раз, когда изменяется ориентация экрана или свойство userOrientation.
Эта функция была введена в Qt 5.1.
См. также currentOrientation().
void QSensor::setEfficientBufferSize(int efficientBufferSize)
Устанавливает эффективный размер буфера на efficientBufferSize. Вызывать из бэкенда.
Эта функция была введена в Qt 5.1.
См. также efficientBufferSize().
void QSensor::setMaxBufferSize(int maxBufferSize)
Устанавливает максимальный размер буфера на maxBufferSize. Вызывать из бэкенда.
Эта функция была введена в Qt 5.1.
См. также maxBufferSize().
void QSensor::setSkipDuplicates(bool skipDuplicates)
Устанавливает пропуск дубликатов на skipDuplicates.
Эта функция была введена в Qt 5.1.
Примечание: Функция-сеттер для свойства skipDuplicates.
См. также skipDuplicates().
Связанные нечленные функции
typedef QSensor::qoutputrangelist
Этот тип определен как список значений qoutputrange.
typedef QList<qoutputrange> qoutputrangelist;
Этот typedef был введен в Qt 5.1.
См. также QList, qoutputrange, и QSensor::outputRanges.
typedef QSensor::qrange
Этот тип определен как QPair.
typedef QPair<int,int> qrange;
Этот typedef был введен в Qt 5.1.
См. также QPair, qrangelist, и QSensor::availableDataRates.
typedef QSensor::qrangelist
Этот тип определен как список значений qrange.
typedef QList<qrange> qrangelist;
Этот typedef был введен в Qt 5.1.
См. также QList, qrange, и QSensor::availableDataRates.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qsensor.html