Класс 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 |
Типы публичного доступа
| Перечисление | AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation } |
| Перечисление | Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, ..., AxesOrientation } |
Свойства
|
|
- 1 свойство унаследовано от QObject
Открытые функции
| QSensor(const QByteArray &type, QObject *parent = Q_NULLPTR) | |
| virtual | ~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 |
- 31 public functions inherited from QObject
Public Slots
| bool | start() |
| void | stop() |
- 1 public slot inherited from QObject
Signals
| 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) |
- 2 signals inherited from QObject
Static Public Members
| QByteArray | defaultSensorForType(const QByteArray &type) |
| QList<QByteArray> | sensorTypes() |
| QList<QByteArray> | sensorsForType(const QByteArray &type) |
| const QMetaObject | staticMetaObject |
- 9 static public members inherited from QObject
Связанные нечлены
| typedef | qoutputrangelist |
| typedef | qrange |
| typedef | qrangelist |
Дополнительные унаследованные члены
- 9 защищённых функций, унаследованных от QObject
Подробное описание
Класс QSensor представляет собой отдельный датчик аппаратного обеспечения.
Жизненный цикл датчика, как правило, следующий:
- Создайте подкласс 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.
Документация по типам членов
перечисление QSensor::AxesOrientationMode
Описание того, как значения измерений влияют на ориентацию экрана.
| Константа | Значение | Описание |
|---|---|---|
QSensor::FixedOrientation |
0 |
Автоматический поворот значений измерений не применяется. |
QSensor::AutomaticOrientation |
1 |
Значения измерений автоматически поворачиваются на основе ориентации экрана. |
QSensor::UserOrientation |
2 |
Значения измерений поворачиваются на основе угла свойства userOrientation. |
Это перечисление было введено или изменено в Qt 5.1.
См. также QSensor::axesOrientationMode.
перечисление 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().
END_OF_DOCUMENT_MARKERДокументация свойств
active : bool
Это свойство хранит значение, указывающее, активен ли датчик.
Истинно, если датчик активен (возвращает значения). Ложно в противном случае.
Обратите внимание, что установка этого значения в 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.
[virtual] QSensor::~QSensor()
Уничтожает датчик. Останавливает датчик, если он ещё не остановлен.
[signal] void QSensor::activeChanged()
Этот сигнал испускается, когда свойство QSensor::active изменяется.
Примечание: Сигнал уведомления для свойства active.
См. также QSensor::active.
void QSensor::addFilter(QSensorFilter *filter)
Добавляет filter к датчику.
Датчик не принимает во владение фильтр. QSensorFilter будет уведомлять датчик о своём уничтожении.
См. также QSensorFilter.
[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
}
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(), чтобы это работало.
Возвращает true, если функция поддерживается, если бэкенд подключен, и false, если бэкенд не подключен.
Эта функция была добавлена в Qt 5.0.
Примечание: Эта функция может вызываться через метаобъектную систему и из QML. См. Q_INVOKABLE.
[signal] void QSensor::readingChanged()
Этот сигнал испускается, когда получено новое значение от датчика.
Значение датчика можно найти в свойстве QSensor::reading. Обратите внимание, что объект измерения — это кэшируемое значение последнего полученного измерения датчика, поэтому приложение должно обрабатывать значение немедленно или сохранить значения для последующей обработки.
Перед тем, как этот сигнал будет испущен впервые, объект измерения будет содержать неинициализированные данные.
Примечание: Сигнал уведомления для свойства reading.
См. также start().
void QSensor::removeFilter(QSensorFilter *filter)
Удаляет filter из датчика.
См. также QSensorFilter.
[signal] void QSensor::sensorError(int error)
Этот сигнал испускается, когда для датчика установлено значение error. Обратите внимание, что некоторые ошибки могут привести к остановке работы датчика. Вы должны вызвать isActive(), чтобы определить, работает ли датчик.
Примечание: Сигнал уведомления для свойства error.
[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().
[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.
Связанные нечлены
typedef qoutputrangelist
Этот тип определяется как список значений qoutputrange.
typedef QList<qoutputrange> qoutputrangelist;
Этот typedef был добавлен в Qt 5.1.
См. также QList, qoutputrange и QSensor::outputRanges.
typedef qrange
Этот тип определяется как QPair.
typedef QPair<int,int> qrange;
Этот typedef был добавлен в Qt 5.1.
См. также QPair, qrangelist и QSensor::availableDataRates.
typedef 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.12/qsensor.html