Spec-Zone.ru › Qt 5.12

Класс QSensorBackend

Класс QSensorBackend реализует сенсор.

Подробнее...

Заголовок: #include <QSensorBackend>
qmake: QT += sensors
С тех пор: Qt 5.1
Наследует: QObject
  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

void addDataRate(qreal min, qreal max)
void addOutputRange(qreal min, qreal max, qreal accuracy)
virtual bool isFeatureSupported(QSensor::Feature feature) const
void newReadingAvailable()
QSensorReading * reading() const
QSensor * sensor() const
void sensorBusy()
void sensorError(int error)
void sensorStopped()
void setDataRates(const QSensor *otherSensor)
void setDescription(const QString &description)
T * setReading(T *reading)
virtual void start() = 0
virtual void stop() = 0
  • 31 открытых функций, унаследованных от QObject

Статические открытые члены

const QMetaObject staticMetaObject
  • 9 статических открытых членов, унаследованных от QObject

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

  • 1 свойство, унаследованное от QObject
  • 1 открытый слот, унаследованный от QObject
  • 2 сигнала, унаследованные от QObject
  • 9 защищенных функций, унаследованных от QObject

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

Класс QSensorBackend реализует сенсор.

Сенсоры устройства будут представлены подклассами QSensorBackend.

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

void QSensorBackend::addDataRate(qreal min, qreal max)

Добавляет скорость передачи данных (состоящую из значений min и max) для сенсора.

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

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

void QSensorBackend::addOutputRange(qreal min, qreal max, qreal accuracy)

Добавляет диапазон вывода (состоящий из значений min, max и accuracy) для сенсора.

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

См. также QSensor::outputRange и QSensor::outputRanges.

[virtual] bool QSensorBackend::isFeatureSupported(QSensor::Feature feature) const

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

Это сторона бэкенда функции QSensor::isFeatureSupported(). Переопределите эту функцию, если бэкенд поддерживает одну из дополнительных функций сенсора в QSensor::Feature.

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

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

void QSensorBackend::newReadingAvailable()

Уведомляет класс QSensor, что доступно новое считывание.

QSensorReading *QSensorBackend::reading() const

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

Обратите внимание, что вам нужно будет выполнить приведение типов.

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

QSensor *QSensorBackend::sensor() const

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

void QSensorBackend::sensorBusy()

Уведомляет переднюю часть, что сенсор занят. Это неявно вызывает sensorStopped() и обычно вызывается из start().

Обратите внимание, что передняя часть должна вызвать QSensor::isBusy(), чтобы увидеть, занят ли сенсор. Если сенсор остановился из-за ошибки, функция sensorError() должна быть вызвана для уведомления класса об условии ошибки.

void QSensorBackend::sensorError(int error)

Уведомляет переднюю часть, что произошла ошибка сенсора. Обратите внимание, что это сообщает только код error. Это не останавливает сенсор.

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

void QSensorBackend::sensorStopped()

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

Обратите внимание, что передняя часть должна вызвать QSensor::isActive(), чтобы увидеть, остановился ли сенсор. Если сенсор остановился из-за ошибки, функция sensorError() должна быть вызвана для уведомления класса об условии ошибки.

void QSensorBackend::setDataRates(const QSensor *otherSensor)

Устанавливает скорость передачи данных для сенсора на основе otherSensor.

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


  setDataRates(otherSensor);

Обратите внимание, что эту функцию необходимо вызывать из конструктора.

См. также QSensor::availableDataRates и addDataRate().

void QSensorBackend::setDescription(const QString &description)

Устанавливает description для сенсора.

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

T *QSensorBackend::setReading(T *reading)

Эта функция вызывается для инициализации классов reading, используемых для сенсора.

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

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


  class MyBackend : public QSensorBackend
  {
      QAccelerometerReading m_reading;
  public:
      MyBackend(QSensor *sensor)
          : QSensorBackend(sensor)
      {
          setReading<QAccelerometerReading>(&m_reading);
      }

      ...

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

Если вы не хотите хранить адрес чтения, вы можете использовать метод reading(), чтобы получить его позже.


  class MyBackend : public QSensorBackend
  {
  public:
      MyBackend(QSensor *sensor)
          : QSensorBackend(sensor)
      {
          setReading<QAccelerometerReading>(0);
      }

      void poll()
      {
          quint64 timestamp;
          qreal x, y, z;
          ...
          QAccelerometerReading *reading = static_cast<QAccelerometerReading*>(reading());
          reading->setTimestamp(timestamp);
          reading->setX(x);
          reading->setY(y);
          reading->setZ(z);
      }

      ...

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

[pure virtual] void QSensorBackend::start()

Начать отслеживание значений.

[pure virtual] void QSensorBackend::stop()

Остановить отслеживание значений.

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

Spec-Zone.ru

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