QSensorBackend Class
La classe QSensorBackend est une implémentation de capteur. Plus d'informations...
| En-tête : | #include <QSensorBackend> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Sensors)target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
| qmake : | QT += sensors |
| Héritages : | QObject |
Fonctions publiques
| 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 |
Description détaillée
Les capteurs d'un appareil seront représentés par des sous-classes de QSensorBackend.
Documentation des fonctions membres
void QSensorBackend::addDataRate(qreal min, qreal max)
Ajouter un débit de données (composé des valeurs min et max ) pour le capteur.
Notez que cette fonction doit être appelée à partir du constructeur afin que l'information soit disponible immédiatement.
Voir également QSensor::availableDataRates.
void QSensorBackend::addOutputRange(qreal min, qreal max, qreal accuracy)
Ajouter une plage de sortie (composée des valeurs min, max et accuracy) pour le capteur.
Notez que cette fonction doit être appelée à partir du constructeur afin que l'information soit disponible immédiatement.
Voir également QSensor::outputRange et QSensor::outputRanges.
[virtual] bool QSensorBackend::isFeatureSupported(QSensor::Feature feature) const
Vérifie si une fonctionnalité est prise en charge par ce backend de capteur.
C'est le côté backend de QSensor::isFeatureSupported(). Réimplémentez cette fonction si le backend prend en charge l'une des fonctions de capteur supplémentaires de QSensor::Feature.
Renvoie si la fonctionnalité feature est prise en charge par ce backend. L'implémentation par défaut renvoie false.
void QSensorBackend::newReadingAvailable()
Informer la classe QSensor qu'une nouvelle lecture est disponible.
QSensorReading *QSensorBackend::reading() const
Si le backend a perdu sa référence à la lecture, il peut appeler cette méthode pour obtenir l'adresse.
Notez que vous devrez effectuer une down-cast vers le type approprié.
Voir aussi setReading().
QSensor *QSensorBackend::sensor() const
Renvoie la partie frontale du capteur associée à ce backend.
void QSensorBackend::sensorBusy(bool busy = true)
Informe le front-end de l'état d'occupation du capteur en fonction du paramètre fourni busy.
Si le capteur est défini comme étant occupé, cela appelle implicitement sensorStopped(). L'indication de l'état occupé se fait généralement dans start().
Notez que la partie frontale doit appeler QSensor::isBusy() pour savoir si le capteur est occupé. Si le capteur s'est arrêté en raison d'une erreur, la fonction sensorError() doit être appelée pour informer la classe de la condition d'erreur.
void QSensorBackend::sensorError(int error)
Informe le frontal qu'une erreur de capteur s'est produite. Notez qu'il ne s'agit que d'un code error. Il n'arrête pas le capteur.
Voir également sensorStopped().
void QSensorBackend::sensorStopped()
Informer la partie frontale que le capteur s'est arrêté. Cela peut être dû à l'échec de start() ou à une raison inattendue (par exemple, une défaillance matérielle).
Notez que la partie frontale doit appeler QSensor::isActive() pour voir si le capteur s'est arrêté. Si le capteur s'est arrêté en raison d'une erreur, la fonction sensorError() doit être appelée pour informer la classe de la condition d'erreur.
void QSensorBackend::setDataRates(const QSensor *otherSensor)
Définissez les débits de données pour le capteur basé sur otherSensor.
Cette fonction est conçue pour les capteurs basés sur d'autres capteurs.
setDataRates(otherSensor);
Notez que cette fonction doit être appelée à partir du constructeur.
Voir également QSensor::availableDataRates et addDataRate().
void QSensorBackend::setDescription(const QString &description)
Définit le site description pour le capteur.
Notez que cette fonction doit être appelée à partir du constructeur afin que l'information soit disponible immédiatement.
template <typename T> T *QSensorBackend::setReading(T *reading)
Cette fonction est appelée pour initialiser les classes reading utilisées pour un capteur.
Si votre backend a déjà attribué un relevé, vous devez transmettre l'adresse de ce relevé à la fonction. Sinon, vous devez passer 0 et la fonction renverra l'adresse du relevé que votre backend doit utiliser lorsqu'il souhaite notifier l'API du capteur de nouveaux relevés.
Notez qu'il s'agit d'une fonction modèle et qu'elle doit donc être appelée avec le type approprié.
class MyBackend : public QSensorBackend { QAccelerometerReading m_reading; public: MyBackend(QSensor *sensor) : QSensorBackend(sensor) { setReading<QAccelerometerReading>(&m_reading); } ...
Notez que cette fonction doit être appelée, sinon vous ne pourrez pas envoyer de relevés au front-end.
Si vous ne souhaitez pas stocker l'adresse du relevé, vous pouvez utiliser la méthode reading() pour la récupérer ultérieurement.
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); } ...
Voir aussi reading().
[pure virtual] void QSensorBackend::start()
Commencer à déclarer des valeurs.
[pure virtual] void QSensorBackend::stop()
Cessez de communiquer des valeurs.
© 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.