Класс QSensor
Класс QSensor представляет собой отдельный датчик аппаратного обеспечения. Подробнее...
| Заголовок: | #include <QSensor> |
| qmake: | QT += sensors |
| С момента: | Qt 5.1 |
| Наследует: | QObject |
| Наследуется от: | QAccelerometer, QAltimeter, QAmbientLightSensor, QAmbientTemperatureSensor, QCompass, QDistanceSensor, QGyroscope, QHolsterSensor, QIRProximitySensor, QLightSensor, QMagnetometer, QOrientationSensor, QPressureSensor, QProximitySensor, QRotationSensor, QTapSensor и QTiltSensor |
Типы public
| Перечисление | AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation } |
| Перечисление | Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, ..., AxesOrientation } |
Свойства
|
|
- 1 свойство унаследовано от QObject
Public Функции
| QSensor(const QByteArray &type, QObject *parent = Q_NULLPTR) | |
| virtual | ~QSensor() |
| void | addFilter(QSensorFilter *filter) |
| qrangelist | availableDataRates() const |
| 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(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(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 общедоступных функций, унаследованных от QObject
Открытые слоты
| bool | start() |
| void | stop() |
- 1 открытый слот, унаследованный от QObject
Сигналы
| void | activeChanged() |
| void | alwaysOnChanged() |
| void | availableSensorsChanged() |
| void | axesOrientationModeChanged(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 сигнала, унаследованные от QObject
Статические общедоступные члены
| QByteArray | defaultSensorForType(const QByteArray &type) |
| QList<QByteArray> | sensorTypes() |
| QList<QByteArray> | sensorsForType(const QByteArray &type) |
- 11 статических общедоступных членов, унаследованных от QObject
Связанные нечлены
| класс | qoutputrange |
| 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().
Документация по свойствам
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.
Функции доступа:
| AxesOrientationMode | axesOrientationMode() const |
| void | setAxesOrientationMode(AxesOrientationMode axesOrientationMode) |
Сигнал уведомления:
| void | axesOrientationModeChanged(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) |
тип : const QByteArray
Данное свойство содержит тип датчика.
Функции доступа:
| QByteArray | тип() const |
ориентацияПользователя : int
Данное свойство содержит угол, используемый для вращения значений считывания в режиме ориентацияПользователя.
Когда свойство axesOrientationMode установлено в ориентацияПользователя, угол вращения значений считывания берется из данного свойства. В других режимах свойство не оказывает влияния.
Значение по умолчанию — 0. Единственно допустимые значения — 0, 90, 180 и 270, так как это единственные возможные ориентации экрана.
Данное свойство применимо только для датчиков, поддерживающих ориентацию.
Данное свойство было добавлено в Qt 5.1.
Функции доступа:
| int | ориентацияПользователя() const |
| void | установитьОриентациюПользователя(int ориентацияПользователя) |
Сигнал уведомления:
| void | ориентацияПользователяИзменилась(int ориентацияПользователя) |
Документация по функциям-членам
QSensor::QSensor(const QByteArray &тип, QObject *родитель = Q_NULLPTR)
Создаёт датчик тип как дочерний элемент родитель.
Не используйте этот конструктор, если для данного типа датчика существует производный класс.
Неправильный способ: использование конструктора базового класса:
QSensor *magnetometer = new QSensor(QMagnetometer::type, this);
Правильный способ: создание экземпляра производного класса:
QMagnetometer *magnetometer = new QMagnetometer(this);
Производные классы имеют дополнительные свойства и члены данных, необходимые для определённых функций, таких как поддержка значений геолокации в QMagnetometer или поддержка режима ускорения в QAccelerometer. Эти функции будут работать должным образом только при создании экземпляра датчика из подкласса QSensor.
Используйте этот конструктор только в случае отсутствия производного класса датчика. Обратите внимание, что для всех встроенных датчиков существуют производные классы, поэтому использование данного конструктора необходимо только при реализации пользовательских датчиков, как в примере датчика Grue в примере датчика Grue.
[virtual] QSensor::~QSensor()
Уничтожает датчик. Останавливает датчик, если он ещё не остановлен.
[signal] void QSensor::activeChanged()
Этот сигнал испускается, когда свойство QSensor::active изменяется.
Примечание: Сигнал уведомления для свойства active.
См. также QSensor::active.
void QSensor::addFilter(QSensorFilter *фильтр)
Добавляет фильтр к датчику.
Датчик не принимает владения фильтром. 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 напрямую.
См. также isConnectedToBackend().
[static] QByteArray QSensor::defaultSensorForType(const QByteArray &тип)
Возвращает идентификатор по умолчанию для датчика тип. Этот идентификатор устанавливается в файле конфигурации и может быть переопределён, если необходимо. Если значение по умолчанию недоступно, система вернёт первый зарегистрированный датчик для тип.
Обратите внимание на специальную логику, предотвращающую превращение бэкэндов универсальной плагиновой системы в бэкэнд по умолчанию, когда для того же типа зарегистрирован другой бэкэнд. Эта логика означает, что идентификатор бэкэнда, начинающийся с generic. , будет значением по умолчанию только если для этого типа не зарегистрированы другие бэкэнды или если он указан в Sensors.conf.
См. также Определение датчика по умолчанию для типа.
QList<QSensorFilter *> QSensor::filters() const
Возвращает фильтры, в настоящее время присоединённые к датчику.
См. также QSensorFilter.
bool QSensor::isFeatureSupported(Feature функция) const
Проверяет, поддерживается ли определённая функция бэкэндом.
QtSensors поддерживает богатый API для управления датчиками и получения информации о них. Естественно, не все эти возможности поддерживаются всеми бэкэндами.
Чтобы проверить, поддерживает ли текущий бэкэнд функцию функция, вызовите эту функцию.
Бэкэнд должен быть подключён, иначе будет возвращено false. Вызов connectToBackend() или start() создаст подключение к бэкэнду.
Бэкэнды должны реализовать QSensorBackend::isFeatureSupported(), чтобы это работало.
Возвращает, поддерживается ли функция, если бэкэнд подключён, или false, если бэкэнд не подключён.
Эта функция была добавлена в Qt 5.0.
[signal] void QSensor::readingChanged()
Этот сигнал испускается при получении нового значения датчика.
Значение датчика можно найти в свойстве QSensor::reading. Обратите внимание, что объект считывания — это динамический кэш последнего полученного значения датчика, поэтому приложение должно обработать считывание немедленно или сохранить значения для последующей обработки.
Перед тем, как этот сигнал был испущен в первый раз, объект считывания будет содержать неинициализированные данные.
Примечание: Сигнал уведомления для свойства reading.
См. также start().
void QSensor::removeFilter(QSensorFilter *фильтр)
Удаляет фильтр из датчика.
См. также QSensorFilter.
[signal] void QSensor::sensorError(int ошибка)
Этот сигнал испускается, когда для датчика устанавливается код ошибка. Обратите внимание, что некоторые ошибки могут привести к остановке работы датчика. Вы должны вызвать isActive(), чтобы определить, работает ли датчик.
Примечание: Сигнал уведомления для свойства error.
[static] QList<QByteArray> QSensor::sensorTypes()
Возвращает список всех типов датчиков.
[static] QList<QByteArray> QSensor::sensorsForType(const QByteArray &тип)
Возвращает список идентификаторов каждого из датчиков для тип. Если доступных датчиков данного типа нет, список будет пустым.
void QSensor::setCurrentOrientation(int текущаяОриентация)
Устанавливает текущую ориентацию экрана в текущаяОриентация. Этот вызов должен осуществляться из бэкэнда при изменении ориентации экрана или свойства 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.
Связанные нечленённые элементы
класс qoutputrange
Класс qoutputrange содержит сведения о диапазоне вывода. Подробнее...
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/archives/qt-5.6/qsensor.html