Spec-Zone.ru › Qt 5.11

Класс 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 доступныеСкоростиДанных() const
QSensor::AxesOrientationMode режимОриентацииОсей() const
int размерБуфера() const
bool подключитьсяКБэкэнду()
int текущаяОриентация() const
int скоростьДанных() const
QString описание() const
int эффективныйРазмерБуфера() const
int ошибка() const
QList<QSensorFilter *> фильтры() const
QByteArray идентификатор() const
bool активен() const
bool постоянноВключен() const
bool занят() const
bool подключенКБэкэнду() const
bool поддерживаетФункцию(QSensor::Feature feature) const
int максимальныйРазмерБуфера() const
int диапазонВывода() const
qoutputrangelist диапазоныВывода() const
QSensorReading * считывание() const
void удалитьФильтр(QSensorFilter *filter)
void установитьАктивность(bool active)
void установитьПостоянноВключен(bool alwaysOn)
void установитьРежимОриентацииОсей(QSensor::AxesOrientationMode axesOrientationMode)
void установитьРазмерБуфера(int bufferSize)
void установитьТекущуюОриентацию(int currentOrientation)
void установитьСкоростьДанных(int rate)
void установитьЭффективныйРазмерБуфера(int efficientBufferSize)
void установитьИдентификатор(const QByteArray &identifier)
void установитьМаксимальныйРазмерБуфера(int maxBufferSize)
void установитьДиапазонВывода(int index)
void установитьПропускДубликатов(bool skipDuplicates)
void установитьПользовательскуюОриентацию(int userOrientation)
bool пропускДубликатов() const
QByteArray тип() const
int пользовательскаяОриентация() const
  • 34 public functions inherited from QObject

Public Slots

bool запустить()
void остановить()
  • 1 public slot inherited from QObject

Signals

void изменилсяАктивный()
void изменилсяПостоянноВключен()
void изменилисьДоступныеДатчики()
void изменилсяРежимОриентацииОсей(QSensor::AxesOrientationMode axesOrientationMode)
void изменилсяРазмерБуфера(int bufferSize)
void изменилсяЗанят()
void измениласьТекущаяОриентация(int currentOrientation)
void измениласьСкоростьДанных()
void изменилсяЭффективныйРазмерБуфера(int efficientBufferSize)
void изменилсяМаксимальныйРазмерБуфера(int maxBufferSize)
void изменилосьСчитывание()
void ошибкаДатчика(int error)
void изменилсяПропускДубликатов(bool skipDuplicates)
void измениласьПользовательскаяОриентация(int userOrientation)
  • 2 signals inherited from QObject

Статические Public Members

QByteArray датчикПоУмолчаниюДляТипа(const QByteArray &type)
QList<QByteArray> типыДатчиков()
QList<QByteArray> датчикиДляТипа(const QByteArray &type)
  • 10 static public members inherited from QObject

Связанные Non-Members

typedef qoutputrangelist
typedef qrange
typedef qrangelist

Дополнительные унаследованные члены

  • 1 публичная переменная, унаследованная от QObject
  • 9 защищённых функций, унаследованных от QObject
  • 2 защищённых переменных, унаследованных от 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, значения считывания автоматически вращаются при изменении ориентации экрана. Эффективно, ориентация экрана отменяется.

(пример)

Этот автоматический поворот осей полезен в некоторых случаях, например, в приложении уровня пузырька, которое измеряет уровень поверхности, глядя на значение оси 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() происходит, когда буферизация активна, частичный буфер не передаётся.

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

(...)

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

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: Grue sensor example.

[virtual] QSensor::~QSensor()

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

[signal] void QSensor::activeChanged()

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

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

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

void QSensor::addFilter(QSensorFilter *filter)

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

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

См. также QSensorFilter.

[signal] void QSensor::alwaysOnChanged()

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

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

[signal] void QSensor::availableSensorsChanged()

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

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

[signal] void QSensor::busyChanged()

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


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

bool QSensor::connectToBackend()

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

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

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

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

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

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

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

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

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

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

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

См. также QSensorFilter.

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

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

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

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

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

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

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

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

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

[signal] void QSensor::readingChanged()

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

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

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

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

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

void QSensor::removeFilter(QSensorFilter *filter)

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

См. также QSensorFilter.

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

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

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

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

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

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

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

void QSensor::setCurrentOrientation(int currentOrientation)

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

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

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

void QSensor::setEfficientBufferSize(int efficientBufferSize)

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

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

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

void QSensor::setMaxBufferSize(int maxBufferSize)

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

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

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

void QSensor::setSkipDuplicates(bool skipDuplicates)

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

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

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

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

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

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

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

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

[slot] bool QSensor::start()

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

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

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

Например, этот код не будет работать должным образом.


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

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


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

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

[slot] void QSensor::stop()

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

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

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

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

typedef qoutputrangelist

Этот тип определяется как список значений qoutputrange.


  typedef QList<qoutputrange> qoutputrangelist;

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

См. также QList, qoutputrange и QSensor::outputRanges.

typedef qrange

Этот тип определяется как QPair.


  typedef QPair<int,int> qrange;

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

См. также QPair, qrangelist и QSensor::availableDataRates.

typedef qrangelist

Этот тип определяется как список значений qrange.


  typedef QList<qrange> qrangelist;

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

См. также QList, qrange и QSensor::availableDataRates.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qsensor.html

Spec-Zone.ru

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