QSensorBackend Class
La classe QSensorBackend est une implémentation de capteur. En savoir plus...
| En-tête : | #include <QSensorBackend> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Sensors) target_link_libraries(mytarget PRIVATE Qt6::Sensors) |
| qmake : | QT += sensors |
| Hérite de : | 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 périphérique seront représentés par des sous-classes de QSensorBackend.
Documentation des fonctions membres
void QSensorBackend::addDataRate(qreal min, qreal max)
Ajoutez un débit de données (composé des valeurs « min » et « max ») pour le capteur.
Notez que cette fonction doit être appelée depuis le constructeur afin que les informations soient immédiatement disponibles.
Voir également QSensor::availableDataRates.
void QSensorBackend::addOutputRange(qreal min, qreal max, qreal accuracy)
Ajoutez une plage de sortie (composée des valeurs min, max et accuracy) pour le capteur.
Notez que cette fonction doit être appelée depuis le constructeur afin que les informations soient disponibles 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.
Il s'agit de la partie « backend » de la fonction QSensor::isFeatureSupported(). Réimplémentez cette fonction si le backend prend en charge l'une des fonctionnalités supplémentaires des capteurs décrites à l'adresse 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()
Signaler à 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 récupérer l'adresse.
Notez que vous devrez effectuer un downcast vers le type approprié.
Voir également setReading().
QSensor *QSensorBackend::sensor() const
Renvoie le module frontal du capteur associé à ce module arrière.
void QSensorBackend::sensorBusy(bool busy = true)
Signaler à l'interface client l'état « occupé » du capteur conformément au paramètre busy fourni.
Si le capteur est défini comme occupé, cela appelle implicitement la fonction sensorStopped(). L'indication d'occupation s'effectue généralement via la fonction start().
Notez que le frontal doit appeler QSensor::isBusy() pour vérifier 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 signaler à la classe la condition d’erreur.
void QSensorBackend::sensorError(int error)
Signaler au système frontal qu'une erreur de capteur s'est produite. Notez que cette opération se limite à signaler un code d'error. Elle n'arrête pas le capteur.
Voir également sensorStopped().
void QSensorBackend::sensorStopped()
Indiquez au front-end que le capteur s'est arrêté. Cela peut être dû à l'échec de la fonction start() ou à une raison imprévue (par exemple, une panne matérielle).
Notez que le front-end doit appeler la fonction QSensor::isActive() pour vérifier si le capteur s'est arrêté. Si le capteur s'est arrêté à la suite d'une erreur, la fonction sensorError() doit être appelée pour signaler la condition d'erreur à la classe.
void QSensorBackend::setDataRates(const QSensor *otherSensor)
Configurez les débits de données du capteur en vous référant à la page otherSensor.
Cette fonction est destinée aux capteurs dérivés d’autres capteurs.
setDataRates(otherSensor);Notez que cette fonction doit être appelée depuis le constructeur.
Voir également QSensor::availableDataRates et addDataRate().
void QSensorBackend::setDescription(const QString &description)
Définit l'description e du capteur.
Notez que cette fonction doit être appelée depuis le constructeur afin que les informations soient disponibles 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à alloué une lecture, vous devez lui transmettre son adresse à la fonction. Sinon, vous devez lui transmettre 0 et la fonction renverra l'adresse de la lecture que votre backend devra utiliser lorsqu'il souhaitera notifier de nouvelles lectures à l'API du capteur.
Notez qu’il s’agit d’une fonction modèle ; 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 mesures au front-end.
Si vous ne souhaitez pas stocker l’adresse de la mesure, 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 également reading().
[pure virtual] void QSensorBackend::start()
Commencez à saisir les valeurs.
[pure virtual] void QSensorBackend::stop()
Cessez de communiquer ces 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.