Sur cette page

QLowEnergyCharacteristic Class

La classe `QLowEnergyCharacteristic` stocke des informations relatives à une caractéristique de service Bluetooth Low Energy. En savoir plus...

En-tête : #include <QLowEnergyCharacteristic>
CMake : find_package(Qt6 REQUIRED COMPONENTS Bluetooth)
target_link_libraries(mytarget PRIVATE Qt6::Bluetooth)
qmake : QT += bluetooth

Types publics

enum PropertyType { Unknown, Broadcasting, Read, WriteNoResponse, Write, …, ExtendedProperty }
flags PropertyTypes

Fonctions publiques

QLowEnergyCharacteristic()
QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)
~QLowEnergyCharacteristic()
(since 6.2) QLowEnergyDescriptor clientCharacteristicConfiguration() const
QLowEnergyDescriptor descriptor(const QBluetoothUuid &uuid) const
QList<QLowEnergyDescriptor> descriptors() const
bool isValid() const
QString name() const
QLowEnergyCharacteristic::PropertyTypes properties() const
QBluetoothUuid uuid() const
QByteArray value() const
QLowEnergyCharacteristic &operator=(const QLowEnergyCharacteristic &other)

Membres publics statiques

(since 6.2) const QByteArray CCCDDisable
(since 6.2) const QByteArray CCCDEnableIndication
(since 6.2) const QByteArray CCCDEnableNotification
bool operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
bool operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)

Description détaillée

QLowEnergyCharacteristic fournit des informations sur les caractéristiques d'un service Bluetooth Low Energy : name(), uuid(), value(), properties() et descriptors(). Pour obtenir la spécification et les informations relatives à la caractéristique, il est nécessaire de se connecter à l'appareil à l'aide des classes QLowEnergyService et QLowEnergyController.

La valeur de la caractéristique peut être écrite via l’instance QLowEnergyService qui gère le service auquel appartient cette caractéristique. La fonction QLowEnergyService::writeCharacteristic() écrit la nouvelle valeur. Le signal QLowEnergyService::characteristicWritten() est émis en cas de réussite. La méthode value() de cet objet est automatiquement mise à jour en conséquence.

Les caractéristiques peuvent ne contenir aucun descripteur, ou bien un ou plusieurs. Elles peuvent être récupérées individuellement à l’aide de la fonction descriptor(). La fonction descriptors() renvoie tous les descripteurs sous forme de liste. Un descripteur sert généralement à ajouter des informations contextuelles à la caractéristique. Par exemple, le descripteur peut fournir des informations de format ou de plage précisant comment la valeur de la caractéristique doit être interprétée.

Voir également QLowEnergyService et QLowEnergyDescriptor.

Documentation sur les types de membres

enum QLowEnergyCharacteristic::PropertyType
flags QLowEnergyCharacteristic::PropertyTypes

Cette énumération décrit les propriétés d'une caractéristique.

ConstanteValeurDescription
QLowEnergyCharacteristic::Unknown0x00Le type n’est pas connu.
QLowEnergyCharacteristic::Broadcasting0x01Autoriser la diffusion des valeurs de caractéristiques GATT (Generic Attributes).
QLowEnergyCharacteristic::Read0x02Autorise la lecture des valeurs de caractéristiques.
QLowEnergyCharacteristic::WriteNoResponse0x04Permet l’écriture des valeurs de caractéristiques sans réponse.
QLowEnergyCharacteristic::Write0x08Permet l'écriture des valeurs de caractéristiques.
QLowEnergyCharacteristic::Notify0x10Permet la notification des valeurs de caractéristiques.
QLowEnergyCharacteristic::Indicate0x20Autorise l'indication des valeurs de caractéristiques.
QLowEnergyCharacteristic::WriteSigned0x40Autorise les écritures signées des valeurs de caractéristique GATT.
QLowEnergyCharacteristic::ExtendedProperty0x80Des propriétés supplémentaires de la caractéristique sont définies dans le descripteur de propriétés étendues de la caractéristique.

Il n’est pas recommandé de définir à la fois les propriétés Notify et Indicate sur une même caractéristique, car les comportements de la pile Bluetooth sous-jacente varient d’une plateforme à l’autre. Veuillez consulter QLowEnergyCharacteristic::clientCharacteristicConfiguration

Le type « PropertyTypes » est une définition de type (typedef) pour « QFlags<PropertyType> ». Il stocke une combinaison « OU » de valeurs de type « PropertyType ».

Voir également properties().

Documentation des fonctions membres

QLowEnergyCharacteristic::QLowEnergyCharacteristic()

Construisez un nouvel objet `QLowEnergyCharacteristic`. Une instance de cette classe créée par défaut est toujours invalide.

Voir également isValid().

QLowEnergyCharacteristic::QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)

Créez un nouvel objet `QLowEnergyCharacteristic` qui soit une copie de ` other`.

Les deux copies continuent de partager les mêmes données sous-jacentes, qui ne sont pas dissociées lors de l'écriture.

[noexcept] QLowEnergyCharacteristic::~QLowEnergyCharacteristic()

Supprime l'objet « QLowEnergyCharacteristic ».

[since 6.2] QLowEnergyDescriptor QLowEnergyCharacteristic::clientCharacteristicConfiguration() const

Renvoie le descripteur de configuration des caractéristiques du client ou une instance non valide de ` QLowEnergyDescriptor ` si aucun descripteur de configuration des caractéristiques du client n'existe.

Les caractéristiques BTLE peuvent prendre en charge les notifications et/ou les indications. Dans les deux cas, le périphérique informe le central de chaque modification de la valeur de la caractéristique. Dans le protocole d’attributs BTLE, les messages de notification ne sont pas confirmés par le central, contrairement aux indications. Les notifications sont considérées comme plus rapides, mais moins fiables, tandis que les indications sont plus lentes et plus fiables.

Si une caractéristique prend en charge les notifications ou les indications, celles-ci peuvent être activées en écrivant des motifs binaires spécifiques dans le descripteur de configuration des caractéristiques client. Pour plus de commodité, ces motifs binaires sont fournis sous la forme QLowEnergyCharacteristic::CCCDDisable, QLowEnergyCharacteristic::CCCDEnableNotification et QLowEnergyCharacteristic::CCCDEnableIndication.

L’activation, par exemple, de la notification pour une caractéristique nommée mycharacteristic dans un service appelé myservice peut être effectuée à l’aide du code suivant.

auto cccd = mycharacteristic.clientCharacteristicConfiguration();
if (!cccd.isValid()) {
    // your error handling
    return error;
}
myservice->writeDescriptor(cccd, QLowEnergyCharacteristic::CCCDEnableNotification);

Remarque : l'appel de characteristic.clientCharacteristicConfiguration() équivaut à l'appel de characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration).

Remarque : il n’est pas recommandé d’utiliser à la fois les notifications et les indications sur une même caractéristique. Cela s’applique aussi bien côté serveur lors de la configuration des caractéristiques que côté client lors de leur activation. Le comportement de la pile Bluetooth varie d’une plateforme à l’autre et le comportement multiplateforme risque d’être incohérent. À titre d’exemple, un client Bluez sous Linux pourrait tenter sans condition d’activer les deux mécanismes s’ils sont tous deux pris en charge, tandis qu’un client macOS pourrait activer sans condition uniquement les notifications. Si les deux sont nécessaires, envisagez de créer deux caractéristiques distinctes.

Cette fonction a été introduite dans Qt 6.2.

Voir également ` descriptor()`.

QLowEnergyDescriptor QLowEnergyCharacteristic::descriptor(const QBluetoothUuid &uuid) const

Renvoie le descripteur d'uuid ou d'une instance QLowEnergyDescriptor non valide.

Voir aussi descriptors().

QList<QLowEnergyDescriptor> QLowEnergyCharacteristic::descriptors() const

Renvoie la liste des descripteurs associés à cette caractéristique ; sinon, une liste vide.

Voir également descriptor().

bool QLowEnergyCharacteristic::isValid() const

Renvoie « true » si l'objet « QLowEnergyCharacteristic » est valide ; sinon, renvoie « false ».

Un objet de caractéristique invalide n’est associé à aucun service (construction par défaut) ou le service associé n’est plus valide en raison, par exemple, d’une déconnexion du périphérique Bluetooth Low Energy sous-jacent. Une fois que l’objet est invalide, il ne peut plus redevenir valide.

Remarque : si une instance de ` QLowEnergyCharacteristic ` devient invalide en raison d’une déconnexion du périphérique sous-jacent, les informations encapsulées par l’instance actuelle restent telles qu’elles étaient au moment de la déconnexion. Elles peuvent donc être récupérées après l’événement de déconnexion.

QString QLowEnergyCharacteristic::name() const

Renvoie le nom lisible par l'utilisateur de la caractéristique.

Ce nom est basé sur la valeur de l'uuid() de la caractéristique, qui doit avoir été normalisée. La liste complète des types de caractéristiques est disponible sur Bluetooth.org, sous la rubrique « Characteristics ».

La chaîne renvoyée est vide si la méthode ` uuid()` est inconnue.

Voir également la fonction ` QBluetoothUuid::characteristicToString()`.

QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristic::properties() const

Renvoie les propriétés de la caractéristique.

Ces propriétés définissent les autorisations d'accès à la caractéristique.

QBluetoothUuid QLowEnergyCharacteristic::uuid() const

Renvoie l'UUID de la caractéristique si la fonction ` isValid()` renvoie ` true` ; sinon, elle renvoie l'UUID ` null `.

QByteArray QLowEnergyCharacteristic::value() const

Renvoie la valeur mise en cache de la caractéristique.

Si l'properties() de la caractéristique autorise l'écriture de nouvelles valeurs, celle-ci peut être mise à jour à l'aide de la méthode QLowEnergyService::writeCharacteristic().

Le cache est mis à jour lors de l'appel de la méthode ` detail discovery` du service associé, lors d'une opération réussie ` read` / `write `, ou lorsqu'une notification de mise à jour est reçue.

La méthode QByteArray renvoie toujours une valeur vide si la caractéristique ne dispose pas de la méthode read permission. Dans ce cas, seules les méthodes QLowEnergyService::characteristicChanged() ou QLowEnergyService::characteristicWritten() peuvent fournir des informations sur la valeur de cette caractéristique.

QLowEnergyCharacteristic &QLowEnergyCharacteristic::operator=(const QLowEnergyCharacteristic &other)

Crée une copie de other et l'attribue à cet objet QLowEnergyCharacteristic. Les deux copies continuent de partager les mêmes informations relatives au service et au contrôleur.

Documentation sur les variables membres

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDDisable

Modèle binaire à écrire dans le descripteur de configuration des caractéristiques du client pour désactiver à la fois la notification et l'indication.

Cette variable a été introduite dans Qt 6.2.

Voir également QLowEnergyCharacteristic::clientCharacteristicConfiguration.

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableIndication

Modèle binaire à écrire dans le descripteur de configuration des caractéristiques du client pour activer l'indication.

Cette variable a été introduite dans Qt 6.2.

Voir également QLowEnergyCharacteristic::clientCharacteristicConfiguration.

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableNotification

Configuration binaire à écrire dans le descripteur de configuration des caractéristiques du client pour activer la notification.

Cette variable a été introduite dans Qt 6.2.

Voir également QLowEnergyCharacteristic::clientCharacteristicConfiguration.

Éléments non membres associés

bool operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)

Renvoie « true » si « a » et « b » ne sont pas égaux ; sinon, renvoie « false ».

Deux instances de `QLowEnergyCharacteristic` sont considérées comme égales si elles font référence à la même caractéristique sur le même périphérique Bluetooth Low Energy distant ou si les deux instances ont été construites par défaut.

bool operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)

Renvoie ` true ` si ` a ` est égal à ` b`, sinon ` false`.

Deux instances de ` QLowEnergyCharacteristic ` sont considérées comme égales si elles font référence à la même caractéristique sur le même périphérique Bluetooth Low Energy distant ou si les deux instances ont été construites par défaut.

© 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.