Spec-Zone.ru › Qt 5.14

Класс QSensor

Класс QSensor представляет собой отдельный датчик аппаратного обеспечения. Подробнее...

Заголовок: #include <QSensor>
qmake: QT += sensors
С момента: Qt 5.1
Наследует: QObject
Наследуется:

QAccelerometer, QAltimeter, QAmbientLightSensor, QAmbientTemperatureSensor, QCompass, QDistanceSensor, QGyroscope, QHolsterSensor, QHumiditySensor, QIRProximitySensor, QLidSensor, QLightSensor, QMagnetometer, QOrientationSensor, QPressureSensor, QProximitySensor, QRotationSensor, QTapSensor и QTiltSensor

Этот класс был представлен в Qt 5.1.

  • Список всех членов, включая унаследованные

Типы публичного доступа

перечисление AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation }
перечисление Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, FieldOfView, …, AxesOrientation }

Свойства

  • active : bool
  • alwaysOn : bool
  • availableDataRates : const qrangelist
  • axesOrientationMode : AxesOrientationMode
  • bufferSize : int
  • busy : const bool
  • connectedToBackend : const bool
  • currentOrientation : const int
  • dataRate : int
  • description : const QString
  • efficientBufferSize : const int
  • error : const int
  • identifier : QByteArray
  • maxBufferSize : const int
  • outputRange : int
  • outputRanges : const qoutputrangelist
  • reading : QSensorReading* const
  • skipDuplicates : bool
  • type : const QByteArray
  • userOrientation : int

Открытые функции

QSensor(const QByteArray &type, QObject *parent = Q_NULLPTR)
виртуальный ~QSensor()
void addFilter(QSensorFilter *filter)
qrangelist availableDataRates() const
QSensor::AxesOrientationMode axesOrientationMode() const
int bufferSize() const
bool connectToBackend()
int currentOrientation() const
int dataRate() const
QString description() const
int efficientBufferSize() const
int error() const
QList<QSensorFilter *> filters() const
QByteArray identifier() const
bool isActive() const
bool isAlwaysOn() const
bool isBusy() const
bool isConnectedToBackend() const
bool isFeatureSupported(QSensor::Feature feature) const
int maxBufferSize() const
int outputRange() const
qoutputrangelist outputRanges() const
QSensorReading * reading() const
void removeFilter(QSensorFilter *filter)
void setActive(bool active)
void setAlwaysOn(bool alwaysOn)
void setAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode)
void setBufferSize(int bufferSize)
void setCurrentOrientation(int currentOrientation)
void setDataRate(int rate)
void setEfficientBufferSize(int efficientBufferSize)
void setIdentifier(const QByteArray &identifier)
void setMaxBufferSize(int maxBufferSize)
void setOutputRange(int index)
void setSkipDuplicates(bool skipDuplicates)
void setUserOrientation(int userOrientation)
bool skipDuplicates() const
QByteArray type() const
int userOrientation() const

Открытые слоты

bool start()
void stop()

Сигналы

void activeChanged()
void alwaysOnChanged()
void availableSensorsChanged()
void axesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode)
void bufferSizeChanged(int bufferSize)
void busyChanged()
void currentOrientationChanged(int currentOrientation)
void dataRateChanged()
void efficientBufferSizeChanged(int efficientBufferSize)
void maxBufferSizeChanged(int maxBufferSize)
void readingChanged()
void sensorError(int error)
void skipDuplicatesChanged(bool skipDuplicates)
void userOrientationChanged(int userOrientation)

Статические публичные члены

QByteArray defaultSensorForType(const QByteArray &type)
QList<QByteArray> sensorTypes()
QList<QByteArray> sensorsForType(const QByteArray &type)

Связанные нечлены

typedef qoutputrangelist
typedef qrange
typedef qrangelist

Подробное описание

Жизненный цикл датчика обычно выглядит так:

  • Создайте подкласс QSensor в стеке или куче.
  • Настройте, как требуется для приложения.
  • Начните прием значений.
  • Данные датчика используются приложением.
  • Остановите прием значений.

Данные датчика передаются через QSensorReading и его подклассы.

Ориентация

Некоторые датчики реагируют на изменения ориентации экрана, такие как QAccelerometer, QMagnetometer и QRotationSensor. Эти датчики называются ориентируемыми датчиками. Для ориентируемых датчиков QSensor поддерживает изменение отчета о значениях считывания в зависимости от ориентации экрана.

Для ориентируемых датчиков свойство axesOrientationMode управляет тем, как ориентация влияет на значения считывания.

В режиме по умолчанию QSensor::FixedOrientation значения считывания не изменяются под влиянием ориентации. В режиме QSensor::AutomaticOrientation значения считывания автоматически вращаются, учитывая текущую ориентацию экрана. И, наконец, в режиме QSensor::UserOrientation значения считывания вращаются в соответствии с заданной пользователем ориентацией.

Эта функциональность доступна только в том случае, если она поддерживается бэкендом и датчик является ориентируемым, что можно проверить, вызвав QSensor::isFeatureSupported() со флагом QSensor::AxesOrientation.

Значения ориентации всегда относятся к ориентации экрана, а не к ориентации устройства. Ориентация экрана — это ориентация графического интерфейса. Например, при повороте устройства на 90 градусов против часовой стрелки, ориентация экрана компенсирует это, повернув на 90 градусов по часовой стрелке, в результате чего графический интерфейс по-прежнему будет ориентирован вертикально после поворота устройства. Обратите внимание, что приложения могут блокировать ориентацию экрана, например, для принудительного режима портрет или ландшафт. Для заблокированных ориентаций ориентируемые датчики не будут реагировать изменениями считывания при изменении ориентации устройства, поскольку ориентируемые датчики реагируют только на изменения ориентации экрана. Это имеет смысл, поскольку цель ориентируемых датчиков — поддерживать ориентацию датчика синхронизированной с ориентацией экрана.

Значения ориентации варьируются от 0 до 270 градусов. Ориентация применяется по часовой стрелке, например, значение ориентации 90 градусов означает, что экран был повернут на 90 градусов вправо от его исходного положения, для компенсации поворота устройства на 90 градусов влево.

См. такжеQSensorReading.

Документация типов членов

enum QSensor::AxesOrientationMode

Описывает, как значения считывания влияют на ориентацию экрана.

Постоянная Значение Описание
QSensor::FixedOrientation 0 К значениям считывания не применяется автоматическое вращение.
QSensor::AutomaticOrientation 1 Значения считывания автоматически вращаются в зависимости от ориентации экрана.
QSensor::UserOrientation 2 Значения считывания вращаются на основе угла свойства userOrientation.

Этот перечисление был введен или изменен в Qt 5.1.

См. такжеQSensor::axesOrientationMode.

enum QSensor::Feature

Список необязательных функций, которые может поддерживать бэкенд.

Общие функции для всех типов датчиков:

Постоянная Значение Описание
QSensor::Buffering 0 Бэкенд поддерживает буферизацию считываний, управляемую свойством QSensor::bufferSize.
QSensor::AlwaysOn 1 Бэкенд поддерживает изменение политики приостановки при простоях, управляемой свойством QSensor::alwaysOn.
QSensor::SkipDuplicates 5 Бэкенд поддерживает пропуск одинаковых или очень похожих последовательных считываний. Это можно включить, установив свойство QSensor::skipDuplicates в значение true.

Функции QMagnetometer:

Постоянная Значение Описание
QSensor::GeoValues 2 Бэкенд поддерживает возвращение географических значений, которые можно контролировать с помощью свойства QMagnetometer::returnGeoValues.

Функции QLightSensor:

Постоянная Значение Описание
QSensor::FieldOfView 3 Бэкенд определяет свое поле зрения, которое можно прочитать из свойства QLightSensor::fieldOfView.

Функции QAccelerometer:

Постоянная Значение Описание
QSensor::AccelerationMode 4 Бэкенд поддерживает переключение режима ускорения акселерометра с помощью свойства QAccelerometer::accelerationMode.

Функции QPressureSensor:

Постоянная Значение Описание
QSensor::PressureSensorTemperature 7 Серверная часть предоставляет температуру кристалла датчика давления.

Особенности всех ориентируемых датчиков:

Постоянная Значение Описание
QSensor::AxesOrientation 6 Серверная часть поддерживает изменение ориентации осей от значения по умолчанию QSensor::FixedOrientation на другое.

Этот перечисление был введён или изменён в Qt 5.0.

См. также QSensor::isFeatureSupported().

Документация свойств

active : bool

Это свойство содержит значение, указывающее, активен ли датчик.

Истинно, если датчик активен (возвращает значения). Ложно в противном случае.

Обратите внимание, что установка этого значения в true не окажет немедленного эффекта. Вместо этого датчик будет запущен, как только будет достигнута очередь событий.

Функции доступа:

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, если датчик занят. Вы не сможете запустить датчик.

Обратите внимание, что эта функция не возвращает true, если вы используете датчик, только если другой процесс использует датчик.

Функции доступа:

bool isBusy() const

См. также busyChanged().

connectedToBackend : const bool

Это свойство содержит значение, указывающее, подключен ли датчик к бэкэнду.

Датчик, который не подключен к бэкэнду, не может ничего полезного сделать.

Вызовите метод connectToBackend(), чтобы немедленно заставить датчик подключиться к бэкэнду. Это автоматически вызывается, если вы вызываете start(), поэтому вам нужно сделать это только в том случае, если вам нужен доступ к свойствам датчика (например, для опроса метаданных датчика перед его использованием).

Функции доступа:

bool isConnectedToBackend() const

currentOrientation : const int

Это свойство содержит текущую ориентацию, используемую для вращения значений чтения.

Она может отличаться от ориентации экрана. Например, в режиме FixedOrientation значения чтения не вращаются, и поэтому свойство равно 0.

В режиме UserOrientation значения чтения вращаются на основе свойства userOrientation, и поэтому это свойство равно свойству userOrientation.

END_OF_DOCUMENT_MARKER

В режиме 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 Grue sensor example.

[signal] void QSensor::activeChanged()

Этот сигнал испускается при изменении свойства QSensor::active.

Примечание: Сигнал уведомления для свойства active.

См. также QSensor::active.

[signal] void QSensor::alwaysOnChanged()

Этот сигнал испускается при изменении свойства alwaysOn.

Примечание: Сигнал уведомления для свойства alwaysOn.

[signal] void QSensor::availableSensorsChanged()

Этот сигнал испускается при изменении списка доступных датчиков. Датчики, доступные программе, обычно не меняются со временем, однако некоторые доступные датчики могут представлять собой аппаратное обеспечение, которое не подключено постоянно. Например, контроллер игры, подключенный через Bluetooth, станет доступен, когда он включен, и станет недоступен, когда он выключен.

См. также QSensor::sensorTypes() и QSensor::sensorsForType().

[signal] void QSensor::busyChanged()

Этот сигнал испускается, когда датчик больше не занят. Это можно использовать для получения датчика, когда он становится доступен.


  sensor.start();
  if (sensor.isBusy()) {
      // need to wait for busyChanged signal and try again
  }

[signal] void QSensor::readingChanged()

Этот сигнал испускается при получении нового показания датчика.

Данные показания датчика можно найти в свойстве QSensor::reading. Обратите внимание, что объект показаний — это динамическая кэшированная копия последнего полученного показания датчика, поэтому приложение должно обработать показания немедленно или сохранить значения для дальнейшей обработки.

Перед тем, как этот сигнал будет испущен в первый раз, в объекте показаний будут неинициализированные данные.

Примечание: Сигнал уведомления для свойства reading.

См. также start().

[signal] void QSensor::sensorError(int error)

Этот сигнал испускается при установке кода ошибки для датчика. Обратите внимание, что некоторые ошибки могут привести к прекращению работы датчика. Вы должны вызвать isActive(), чтобы определить, работает ли датчик.

Примечание: Сигнал уведомления для свойства error.

[signal] void QSensor::skipDuplicatesChanged(bool skipDuplicates)

Этот сигнал испускается при изменении свойства skipDuplicates.

Данная функция была добавлена в Qt 5.1.

Примечание: Сигнал уведомления для свойства skipDuplicates.

[slot] bool QSensor::start()

Начать получение значений от датчика. Возвращает true, если датчик был запущен, иначе — false.

Датчик может не запуститься по нескольким причинам.

После запуска датчика приложением необходимо подождать, пока датчик получит новое значение, прежде чем можно будет запросить значения датчика. Это связано с тем, как датчик получает значения от системы. Датчики (как правило) не опрашивают новые значения, а новые значения передаются датчикам по мере их появления.

Например, этот код не будет работать как ожидается.


  sensor->start();
  sensor->reading()->x(); // no data available

Для корректной работы код, обращающийся к показаниям, должен убедиться, что сигнал readingChanged() был испущен.


      connect(sensor, SIGNAL(readingChanged()), this, SLOT(checkReading()));
      sensor->start();
  }
  void MyClass::checkReading() {
      sensor->reading()->x();

См. также QSensor::busy.

[slot] void QSensor::stop()

Остановить получение значений от датчика.

Это освобождает датчик, чтобы другие процессы могли его использовать.

См. также QSensor::busy.

[virtual] QSensor::~QSensor()

Уничтожить датчик. Останавливает датчик, если он еще не остановлен.

void QSensor::addFilter(QSensorFilter *filter)

Добавить filter к датчику.

Датчик не принимает владения фильтром. QSensorFilter уведомит датчик, если он будет уничтожен.

См. также QSensorFilter.

bool QSensor::connectToBackend()

Попытка подключиться к бэкенду датчика.

Возвращает true, если подходящий бэкенд был найден, иначе — false.

Тип должен быть задан перед вызовом этого метода, если вы используете QSensor напрямую.

Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.

См. также isConnectedToBackend().

[static] QByteArray QSensor::defaultSensorForType(const QByteArray &type)

Возвращает идентификатор по умолчанию для датчика type. Это задается в файле конфигурации и может быть переопределено при необходимости. Если значение по умолчанию недоступно, система вернет первый зарегистрированный датчик для type.

Обратите внимание, что существует специальная логика для предотвращения того, чтобы бэкенды универсальной плагины становились значениями по умолчанию, когда для того же типа регистрируется другой бэкенд. Эта логика означает, что идентификатор бэкенда, начинающийся с generic. , будет значением по умолчанию только если не было зарегистрировано других бэкендов для данного типа или если он указан в Sensors.conf.

См. также Определение датчика по умолчанию для типа.

QList<QSensorFilter *> QSensor::filters() const

Возвращает фильтры, в настоящее время присоединённые к датчику.

См. также QSensorFilter.

bool QSensor::isFeatureSupported(QSensor::Feature feature) const

Проверяет, поддерживается ли конкретная функция бэкендом.

QtSensors поддерживает богатый API для управления и предоставления информации о датчиках. Естественно, не все функции могут поддерживаться всеми бэкендами.

Чтобы проверить, поддерживает ли текущий бэкенд функцию feature, вызовите эту функцию.

Для подключения необходимо подключение к бэкенду, в противном случае будет возвращено значение false. Вызов connectToBackend() или start() создаст подключение к бэкенду.

Бэкенды должны реализовывать QSensorBackend::isFeatureSupported(), чтобы это работало.

Возвращает значение true, если функция поддерживается, если бэкенд подключен, или false, если бэкенд не подключен.

Эта функция была добавлена в Qt 5.0.

Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.

void QSensor::removeFilter(QSensorFilter *filter)

Удалить filter из датчика.

См. также QSensorFilter.

[static] QList<QByteArray> QSensor::sensorTypes()

Возвращает список всех типов датчиков.

[static] QList<QByteArray> QSensor::sensorsForType(const QByteArray &type)

Возвращает список идентификаторов для каждого датчика типа type. Если датчиков данного типа нет, список будет пустым.

void QSensor::setCurrentOrientation(int currentOrientation)

Устанавливает текущую ориентацию экрана на currentOrientation. Этот метод следует вызывать из бэкенда всякий раз, когда меняется ориентация экрана или свойство userOrientation.

Эта функция была добавлена в Qt 5.1.

См. также currentOrientation().

void QSensor::setEfficientBufferSize(int efficientBufferSize)

Устанавливает размер эффективного буфера на efficientBufferSize. Этот метод следует вызывать из бэкенда.

Эта функция была добавлена в Qt 5.1.

См. также efficientBufferSize().

void QSensor::setMaxBufferSize(int maxBufferSize)

Устанавливает максимальный размер буфера на maxBufferSize. Этот метод следует вызывать из бэкенда.

Эта функция была добавлена в Qt 5.1.

См. также maxBufferSize().

void QSensor::setSkipDuplicates(bool skipDuplicates)

Устанавливает пропуск дубликатов на skipDuplicates.

Эта функция была добавлена в Qt 5.1.

Примечание: Метод-сеттер для свойства skipDuplicates.

См. также skipDuplicates().

Связанные нечлен-функции

typedef 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.14/qsensor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API