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