Spec-Zone.ru › Qt

Класс QSensorBackend

Класс QSensorBackend — это реализация датчика. Подробнее...

Заголовок: #include <QSensorBackend>
CMake: find_package(Qt6 COMPONENTS Sensors REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Sensors)
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(bool busy = true)
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

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

Датчики на устройстве будут представлены подклассами 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, since 5.0] 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(bool busy = true)

Уведомляет интерфейс датчика о состоянии готовности, в соответствии с переданным параметром busy.

Если датчик устанавливается в состояние busy, это неявно вызывает 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 для датчика.

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

template <typename T> 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-6.2/qsensorbackend.html

Spec-Zone.ru

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