QSensorBackend Class
La clase QSensorBackend es una implementación de sensor. Más...
| Cabecera: | #include <QSensorBackend> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Sensors)target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
| qmake: | QT += sensors |
| Hereda: | QObject |
Funciones Públicas
| 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 |
Descripción Detallada
Los sensores en un dispositivo serán representados por subclases de QSensorBackend.
Documentación de Funciones Miembro
void QSensorBackend::addDataRate(qreal min, qreal max)
Añade una tasa de datos (consistente en los valores min y max ) para el sensor.
Tenga en cuenta que esta función debe ser llamada desde el constructor para que la información esté disponible inmediatamente.
Véase también QSensor::availableDataRates.
void QSensorBackend::addOutputRange(qreal min, qreal max, qreal accuracy)
Añade un rango de salida (consistente en min, max valores y accuracy) para el sensor.
Tenga en cuenta que esta función debe ser llamada desde el constructor para que la información esté disponible inmediatamente.
Véase también QSensor::outputRange y QSensor::outputRanges.
[virtual] bool QSensorBackend::isFeatureSupported(QSensor::Feature feature) const
Comprueba si una característica es soportada por este sensor backend.
Este es el lado del backend de QSensor::isFeatureSupported(). Reimplemente esta función si el backend soporta una de las características adicionales del sensor de QSensor::Feature.
Devuelve si la característica feature es soportada por este backend. La implementación por defecto devuelve false.
void QSensorBackend::newReadingAvailable()
Notifique a la clase QSensor que hay una nueva lectura disponible.
QSensorReading *QSensorBackend::reading() const
Si el backend ha perdido su referencia a la lectura puede llamar a este método para obtener la dirección.
Tenga en cuenta que tendrá que hacer un down-cast al tipo apropiado.
Véase también setReading().
QSensor *QSensorBackend::sensor() const
Devuelve el sensor frontal asociado con este backend.
void QSensorBackend::sensorBusy(bool busy = true)
Informa al front end del estado ocupado del sensor según el parámetro proporcionado busy.
Si el sensor está ocupado, se llama implícitamente a sensorStopped(). La indicación de ocupado se realiza normalmente en start().
Tenga en cuenta que el front-end debe llamar a QSensor::isBusy() para ver si el sensor está ocupado. Si el sensor se ha detenido debido a un error la función sensorError() debe ser llamada para notificar a la clase de la condición de error.
void QSensorBackend::sensorError(int error)
Informa al front end de que se ha producido un error en el sensor. Tenga en cuenta que esto sólo informa de un código error. No detiene el sensor.
Véase también sensorStopped().
void QSensorBackend::sensorStopped()
Informa al front end de que el sensor se ha detenido. Esto puede deberse a un fallo de start() o a alguna razón inesperada (por ejemplo, un fallo de hardware).
Tenga en cuenta que la interfaz debe llamar a QSensor::isActive() para comprobar si el sensor se ha detenido. Si el sensor se ha detenido debido a un error, la función sensorError() debe ser llamada para notificar a la clase de la condición de error.
void QSensorBackend::setDataRates(const QSensor *otherSensor)
Establezca las velocidades de datos para el sensor basado en otherSensor.
Esto está diseñado para sensores que están basados en otros sensores.
setDataRates(otherSensor);
Note que esta función debe ser llamada desde el constructor.
Ver también QSensor::availableDataRates y addDataRate().
void QSensorBackend::setDescription(const QString &description)
Establece el description para el sensor.
Tenga en cuenta que esta función debe ser llamada desde el constructor para que la información esté disponible inmediatamente.
template <typename T> T *QSensorBackend::setReading(T *reading)
Esta función se llama para inicializar las clases reading utilizadas para un sensor.
Si tu backend ya ha asignado una lectura debes pasar la dirección de esta a la función. Si no, debe pasar 0 y la función devolverá la dirección de la lectura que su backend debe usar cuando quiera notificar a la API del sensor de nuevas lecturas.
Tenga en cuenta que esta es una función de plantilla por lo que debe ser llamada con el tipo apropiado.
class MyBackend : public QSensorBackend { QAccelerometerReading m_reading; public: MyBackend(QSensor *sensor) : QSensorBackend(sensor) { setReading<QAccelerometerReading>(&m_reading); } ...
Tenga en cuenta que esta función debe ser llamada o no podrá enviar lecturas al front-end.
Si no desea almacenar la dirección de la lectura puede utilizar el método reading() para volver a obtenerla más tarde.
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); } ...
Véase también reading().
[pure virtual] void QSensorBackend::start()
Comienza a informar de los valores.
[pure virtual] void QSensorBackend::stop()
Deja de informar de los valores.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.