Spec-Zone.ru › Qt 5.6

Класс 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

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

  • 1 свойство унаследовано от QObject
  • 1 открытый слот унаследован от QObject
  • 2 сигнала унаследованы от QObject
  • 11 статических открытых членов унаследованы от 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/archives/qt-5.6/qsensorbackend.html

Spec-Zone.ru

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