Класс QSensor
Класс QSensor представляет отдельный сенсор аппаратного обеспечения. Подробнее...
| Заголовок: | #include <QSensor> |
| CMake: | find_package(Qt6 COMPONENTS Sensors REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
| qmake: | QT += sensors |
| С момента: | Qt 5.1 |
| Наследует: | QObject |
| Наследуется: | QAccelerometer, QAmbientLightSensor, QAmbientTemperatureSensor, QCompass, QGyroscope, QHumiditySensor, QLightSensor, QMagnetometer, QOrientationSensor, QPressureSensor, QProximitySensor, QRotationSensor и QTiltSensor |
Общие типы
| Перечисление | Режим ориентации осей { FixedOrientation, AutomaticOrientation, UserOrientation } |
| Перечисление | Функция { Buffering, AlwaysOn, SkipDuplicates, GeoValues, FieldOfView, …, AxesOrientation } |
Свойства
|
|
Общедоступные функции
| QSensor(const QByteArray &type, QObject *parent = 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 |
Открытые слоты
| 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 | identifierChanged() |
| 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) |
Связанные нечлены
| qoutputrangelist | |
| qrange | |
| 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.
Документация по типам членов
[since 5.1] перечисление QSensor::AxesOrientationMode
Описывает, как значения измерений влияют на ориентацию экрана.
| Постоянная | Значение | Описание |
|---|---|---|
QSensor::FixedOrientation |
0 |
Автоматическое вращение значений измерений не применяется. |
QSensor::AutomaticOrientation |
1 |
Значения измерений автоматически поворачиваются на основе ориентации экрана. |
QSensor::UserOrientation |
2 |
Значения измерений поворачиваются на основе угла свойства userOrientation. |
Это перечисление было введено или изменено в Qt 5.1.
См. такжеQSensor::axesOrientationMode.
[since 5.0] перечисление 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 не окажет немедленного эффекта. Вместо этого датчик будет запущен, когда будет достигнута очередь событий.
Функции доступа:
| bool | isActive() const |
| void | setActive(bool active) |
Сигнал уведомления:
| void | activeChanged() |
alwaysOn : bool
Это свойство содержит значение, указывающее, должен ли датчик оставаться работающим, когда экран выключен.
Некоторые платформы приостанавливают работу датчиков, когда экран выключается. Установка этого свойства в true гарантирует, что датчик продолжит работу.
Функции доступа:
| bool | isAlwaysOn() const |
| void | setAlwaysOn(bool alwaysOn) |
Сигнал уведомления:
| void | alwaysOnChanged() |
[read-only] availableDataRates : const qrangelist
Это свойство содержит поддерживаемые датчиком скорости передачи данных.
Это список поддерживаемых датчиком скоростей передачи данных. Измеряется в герцах.
Элементы списка могут представлять дискретные скорости или непрерывный диапазон скоростей. Дискретная скорость отмечается одинаковыми значениями.
См. пример sensor_explorer для примера интерпретации и использования этой информации.
Обратите внимание, что эта информация не является обязательной, так как не все датчики работают с определенной скоростью. В таких случаях список будет пустым.
Функции доступа:
| qrangelist | availableDataRates() const |
См. такжеQSensor::dataRate и qrangelist.
[since 5.1] 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.
[read-only] busy : const bool
Это свойство содержит значение, указывающее, занят ли датчик.
Некоторые датчики могут быть подключены к системе, но недоступны для использования. Эта функция вернет true, если датчик занят. Вы не сможете вызвать start() для датчика.
Обратите внимание, что эта функция не возвращает true, если вы используете датчик, только если другой процесс использует датчик.
Функции доступа:
| bool | isBusy() const |
Сигнал уведомления:
| void | busyChanged() |
См. также busyChanged().
[read-only] connectedToBackend : const bool
Это свойство содержит значение, указывающее, подключен ли датчик к бэкенду.
Датчик, который не подключен к бэкенду, не может выполнять полезную работу.
Вызовите метод connectToBackend(), чтобы немедленно подключить датчик к бэкенду. Это автоматически вызывается при вызове start(), поэтому вам нужно делать это только в том случае, если вам нужен доступ к свойствам датчика (т.е. чтобы получить доступ к метаданным датчика перед его использованием).
Функции доступа:
| bool | isConnectedToBackend() const |
[read-only, since 5.1] 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.
[read-only] description : const QString
Это свойство содержит строку описания датчика.
Функции доступа:
| QString | description() const |
[read-only] efficientBufferSize : const int
Свойство содержит наиболее эффективный размер буфера. Обычно это 1 (что означает, что нет особого размера, который является наиболее эффективным). Некоторые драйверы датчиков имеют буфер FIFO, что делает более эффективным предоставление значений из FIFO в один момент.
Функции доступа:
| int | efficientBufferSize() const |
Сигнал уведомления:
| void | efficientBufferSizeChanged(int efficientBufferSize) |
См. также QSensor::bufferSize и QSensor::maxBufferSize.
[read-only] error : const int
Это свойство содержит последний код ошибки, установленный для датчика.
Обратите внимание, что коды ошибок специфичны для датчика.
Функции доступа:
| int | error() const |
Сигнал уведомления:
| void | sensorError(int error) |
identifier : QByteArray
Это свойство содержит идентификатор бэкенда для датчика.
Обратите внимание, что идентификатор заполняется автоматически при подключении датчика к бэкенду. Если вы хотите подключить определенный бэкенд, вы должны вызвать setIdentifier() перед connectToBackend().
Функции доступа:
| QByteArray | identifier() const |
| void | setIdentifier(const QByteArray &identifier) |
Сигнал уведомления:
| void | identifierChanged() |
[read-only] 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.
[read-only] outputRanges : const qoutputrangelist
Это свойство содержит список поддерживаемых датчиком выходных диапазонов.
Датчик может иметь более одного выходного диапазона. Обычно это делается для обеспечения большего диапазона измерений ценой снижения точности.
Обратите внимание, что эта информация необязательна. Эта информация обычно доступна только для датчиков, имеющих выбираемые выходные диапазоны (например, для типичных акселерометров).
Функции доступа:
| qoutputrangelist | outputRanges() const |
См. также QSensor::outputRange и qoutputrangelist.
[read-only] reading : QSensorReading* const
Это свойство содержит класс показаний.
Класс показаний предоставляет доступ к показаниям датчика. Объект показаний является летучей кэшированной копией последних полученных показаний датчика, поэтому приложение должно обрабатывать показания немедленно или сохранять значения где-нибудь для последующей обработки.
Обратите внимание, что это вернёт 0 до подключения бэкенда датчика к бэкенду.
Также обратите внимание, что показания не становятся доступны сразу после вызова start(). Приложения должны дождаться, пока не будет отправлен сигнал readingChanged().
Функции доступа:
| QSensorReading * | reading() const |
Сигнал уведомления:
| void | readingChanged() |
См. также isConnectedToBackend() и start().
[since 5.1] skipDuplicates : bool
Указывает, нужно ли пропускать повторяющиеся значения показаний.
При включенном пропускании дубликатов, последующие показания с одинаковыми или очень похожими значениями пропускаются. Это помогает уменьшить объем обработки, так как доступно меньше показаний датчика. Вследствие этого показания приходят с нерегулярными интервалами.
Пропускание дубликатов включено не только для показаний, которые точно одинаковы, но и для показаний, которые достаточно похожи, поскольку каждый датчик имеет некоторую джиттер, даже если устройство не перемещается.
Поддержка этого свойства зависит от бэкенда. Используйте isFeatureSupported(), чтобы проверить, поддерживается ли оно на текущей платформе.
Отключение дублирования по умолчанию включено.
Отключение дублирования вступает в силу при запуске датчика, изменение свойства во время активности датчика не оказывает немедленного эффекта.
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| bool | skipDuplicates() const |
| void | setSkipDuplicates(bool skipDuplicates) |
Сигнал уведомления:
| void | skipDuplicatesChanged(bool skipDuplicates) |
[read-only] type : const QByteArray
Это свойство содержит тип датчика.
Функции доступа:
| QByteArray | type() const |
[since 5.1] 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 = nullptr)
Создает датчик типа type как дочерний элемент parent.
Не используйте этот конструктор, если для указанного типа датчика существует производный класс.
Неправильный способ:
QSensor *magnetometer = new QSensor(QMagnetometer::sensorType, 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
}
Примечание: Сигнал уведомления для свойства busy.
[signal] void QSensor::readingChanged()
Этот сигнал излучается при получении нового считывания датчика.
Значение считывания датчика можно найти в свойстве QSensor::reading. Обратите внимание, что объект чтения — это кэшируемое значение последнего полученного считывания датчика, поэтому приложение должно обработать считывание немедленно или сохранить значения для последующей обработки.
Перед тем, как этот сигнал будет излучен в первый раз, объект чтения будет содержать неинициализированные данные.
Примечание: Сигнал уведомления для свойства reading.
См. также start().
[signal] void QSensor::sensorError(int error)
Этот сигнал излучается при установке кода ошибки на датчике. Обратите внимание, что некоторые ошибки приведут к остановке работы датчика. Вы должны вызвать isActive(), чтобы определить, работает ли датчик.
Примечание: Сигнал уведомления для свойства error.
[signal, since 5.1] void QSensor::skipDuplicatesChanged(bool skipDuplicates)
Этот сигнал излучается при изменении свойства skipDuplicates.
Примечание: Сигнал уведомления для свойства skipDuplicates.
Эта функция была добавлена в Qt 5.1.
[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.
[invokable] 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.
[invokable, since 5.0] bool QSensor::isFeatureSupported(QSensor::Feature feature) const
Проверяет, поддерживается ли конкретная функция бэкендом.
QtSensors поддерживает богатый API для управления датчиками и получения информации о них. Естественно, не вся эта функциональность может быть поддержана всеми бэкендами.
Чтобы проверить, поддерживает ли текущий бэкенд функцию feature, вызовите эту функцию.
Бэкенд должен быть подключен, иначе будет возвращено false. Вызов connectToBackend() или start() создаст подключение к бэкенду.
Бэкенды должны реализовывать QSensorBackend::isFeatureSupported(), чтобы это работало.
Возвращает true, если функция поддерживается при подключенном бэкенде, или false, если бэкенд не подключен.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
Эта функция была добавлена в Qt 5.0.
void QSensor::removeFilter(QSensorFilter *filter)
Удаляет filter из датчика.
См. также QSensorFilter.
[static] QList<QByteArray> QSensor::sensorTypes()
Возвращает список всех типов датчиков.
[static] QList<QByteArray> QSensor::sensorsForType(const QByteArray &type)
Возвращает список идентификаторов каждого датчика для типа type. Если доступных датчиков этого типа нет, список будет пустым.
[since 5.1] void QSensor::setCurrentOrientation(int currentOrientation)
Устанавливает текущую ориентацию экрана в currentOrientation. Это следует вызывать из бэкенда всякий раз, когда изменяется ориентация экрана или свойство userOrientation.
Эта функция была добавлена в Qt 5.1.
См. также currentOrientation().
[since 5.1] void QSensor::setEfficientBufferSize(int efficientBufferSize)
Устанавливает эффективный размер буфера в efficientBufferSize. Это следует вызывать из бэкенда.
Эта функция была добавлена в Qt 5.1.
См. также efficientBufferSize().
[since 5.1] void QSensor::setMaxBufferSize(int maxBufferSize)
Устанавливает максимальный размер буфера в maxBufferSize. Это следует вызывать из бэкенда.
Эта функция была добавлена в Qt 5.1.
См. также maxBufferSize().
[since 5.1] void QSensor::setSkipDuplicates(bool skipDuplicates)
Устанавливает пропускание дубликатов в skipDuplicates.
Примечание: Функция-сеттер для свойства skipDuplicates.
Эта функция была добавлена в Qt 5.1.
См. также skipDuplicates().
Связанные нечленные функции
[alias, since 5.1] qoutputrangelist
Этот тип определен как список значений qoutputrange.
typedef QList<qoutputrange> qoutputrangelist;
Этот typedef был добавлен в Qt 5.1.
См. также QList, qoutputrange и QSensor::outputRanges.
[alias, since 5.1] qrange
Этот тип определен как QPair.
typedef QPair<int,int> qrange;
Этот typedef был добавлен в Qt 5.1.
См. также QPair, qrangelist и QSensor::availableDataRates.
[alias, since 5.1] 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-6.2/qsensor.html