Spec-Zone.ru › Qt 5.9

Класс QSensor

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

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

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

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

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

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

Свойства

  • 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
  • 1 свойство унаследовано от QObject

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

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
  • 32 общедоступных функций, унаследованных от 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 не окажет немедленного эффекта. Вместо этого датчик будет запущен, как только будет достигнут цикл событий.

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

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)

type : const QByteArray

Данное свойство содержит тип датчика.

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

QByteArray type() const

userOrientation : int

Данное свойство содержит угол, используемый для поворота значений измерений в режиме UserOrientation.

Когда свойство axesOrientationMode установлено в UserOrientation, угол для поворота значений измерений берется из данного свойства. В других режимах свойство не оказывает влияния.

Значение по умолчанию — 0. Единственно допустимые значения — 0, 90, 180 и 270, так как это единственно возможные ориентации экрана.

Данное свойство действительно только для ориентабельных датчиков.

Это свойство было добавлено в Qt 5.1.

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

int userOrientation() const
void setUserOrientation(int userOrientation)

Сигнал уведомления:

void userOrientationChanged(int userOrientation)

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

QSensor::QSensor(const QByteArray &type, QObject *parent = Q_NULLPTR)

Создаёт датчик типа type как дочерний объект parent.

Не используйте этот конструктор, если существует производный класс для конкретного типа датчика.

Неправильный способ:

QSensor *magnetometer = new QSensor(QMagnetometer::type, this);

Правильный способ:

QMagnetometer *magnetometer = new QMagnetometer(this);

Производные классы имеют дополнительные свойства и данные, необходимые для определённых функций, таких как поддержка значений геолокации в QMagnetometer или поддержка режима ускорения в QAccelerometer. Эти функции будут работать должным образом только при создании экземпляра датчика из подкласса QSensor.

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

[virtual] QSensor::~QSensor()

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

[signal] void QSensor::activeChanged()

Данный сигнал подаётся, когда свойство QSensor::active изменяется.

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

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

void QSensor::addFilter(QSensorFilter *filter)

Добавляет filter к датчику.

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

См. также QSensorFilter.

[signal] void QSensor::alwaysOnChanged()

Этот сигнал подаётся, когда свойство alwaysOn изменяется.

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

[signal] void QSensor::availableSensorsChanged()

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

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

[signal] void QSensor::busyChanged()

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

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

bool QSensor::connectToBackend()

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

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

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

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

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

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

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

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

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

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

См. также QSensorFilter.

bool QSensor::isFeatureSupported(Feature feature) const

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

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

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

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

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

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

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

[signal] void QSensor::readingChanged()

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

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

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

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

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

void QSensor::removeFilter(QSensorFilter *filter)

Удаляет filter из датчика.

См. также QSensorFilter.

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

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

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

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

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

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

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

void QSensor::setCurrentOrientation(int currentOrientation)

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

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

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

void QSensor::setEfficientBufferSize(int efficientBufferSize)

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

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

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

void QSensor::setMaxBufferSize(int maxBufferSize)

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

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

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

void QSensor::setSkipDuplicates(bool skipDuplicates)

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

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

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

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

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

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

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

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

[slot] bool QSensor::start()

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

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

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

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

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

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

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

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

[slot] void QSensor::stop()

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

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

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

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

class 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/qt-5.9/qsensor.html

Spec-Zone.ru

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