Sur cette page

QLowEnergyCharacteristic Class

La classe QLowEnergyCharacteristic stocke des informations sur une caractéristique de service Bluetooth Low Energy. Plus d'informations...

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 une caractéristique de 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 au dispositif à 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 cette caractéristique appartient. La fonction QLowEnergyService::writeCharacteristic() écrit la nouvelle valeur. Le signal QLowEnergyService::characteristicWritten() est émis en cas de succès. Le site value() de cet objet est automatiquement mis à jour en conséquence.

Les caractéristiques peuvent contenir aucun, un ou plusieurs descripteurs. Ils peuvent être récupérés individuellement à l'aide de la fonction descriptor(). La fonction descriptors() renvoie tous les descripteurs sous forme de liste. L'objectif général d'un descripteur est d'ajouter des informations contextuelles à la caractéristique. Par exemple, le descripteur peut fournir des informations sur le format ou la plage de valeurs qui précisent 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 du type
QLowEnergyCharacteristic::Unknown0x00Le type n'est pas connu.
QLowEnergyCharacteristic::Broadcasting0x01Permet la diffusion des valeurs de caractéristiques des attributs génériques (GATT).
QLowEnergyCharacteristic::Read0x02Permet la lecture des valeurs de caractéristiques.
QLowEnergyCharacteristic::WriteNoResponse0x04Permet d'écrire des valeurs de caractéristiques sans réponse.
QLowEnergyCharacteristic::Write0x08Permet d'écrire des valeurs de caractéristiques.
QLowEnergyCharacteristic::Notify0x10Permet la notification des valeurs de caractéristiques.
QLowEnergyCharacteristic::Indicate0x20Autorise les indications de valeurs de caractéristiques.
QLowEnergyCharacteristic::WriteSigned0x40Autorise les écritures signées des valeurs de caractéristiques GATT.
QLowEnergyCharacteristic::ExtendedProperty0x80D'autres propriétés de la caractéristique sont définies dans le descripteur des propriétés étendues de la caractéristique.

Il n'est pas recommandé de définir les propriétés Notify et Indicate sur la même caractéristique, car les comportements de la pile Bluetooth sous-jacente diffèrent d'une plate-forme à l'autre. Voir aussi QLowEnergyCharacteristic::clientCharacteristicConfiguration

Le type PropertyTypes est un typedef pour QFlags<PropertyType>. Il stocke une combinaison OR de valeurs PropertyType.

Voir également properties().

Documentation des fonctions membres

QLowEnergyCharacteristic::QLowEnergyCharacteristic()

Construit une nouvelle QLowEnergyCharacteristic. Une instance de cette classe construite par défaut est toujours invalide.

Voir également isValid().

QLowEnergyCharacteristic::QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)

Construire une nouvelle QLowEnergyCharacteristic qui est une copie de other.

Les deux copies continuent à partager les mêmes données sous-jacentes qui ne se détachent pas lors de l'écriture.

[noexcept] QLowEnergyCharacteristic::~QLowEnergyCharacteristic()

Détruit 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 s'il n'existe pas de descripteur de configuration des caractéristiques du client.

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, alors que les indications le sont. Les notifications sont considérées comme plus rapides, mais peu fiables, tandis que les indications sont plus lentes et plus fiables.

Si une caractéristique prend en charge la notification ou l'indication, celles-ci peuvent être activées en écrivant des schémas de bits spéciaux dans le descripteur de configuration de la caractéristique du client. Pour des raisons de commodité, ces schémas binaires sont désignés par QLowEnergyCharacteristic::CCCDDisable, QLowEnergyCharacteristic::CCCDEnableNotification, et QLowEnergyCharacteristic::CCCDEnableIndication.

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

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

Note : L'appel à characteristic.clientCharacteristicConfiguration() est équivalent à l'appel à characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration).

Remarque : il n'est pas recommandé d'utiliser à la fois des notifications et des indications sur la même caractéristique. Cela s'applique à la fois au côté serveur lors de la configuration des caractéristiques et au côté client lors de leur activation. Le comportement de la pile Bluetooth diffère d'une plateforme à l'autre et le comportement multiplateforme sera probablement incohérent. Par exemple, un client Linux Bluez peut essayer d'activer inconditionnellement les deux mécanismes s'ils sont tous deux pris en charge, alors qu'un client macOS peut activer inconditionnellement uniquement les notifications. Si les deux sont nécessaires, il faut envisager 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

Retourne le descripteur de uuid ou une instance invalide de QLowEnergyDescriptor.

Voir aussi descriptors().

QList<QLowEnergyDescriptor> QLowEnergyCharacteristic::descriptors() const

Renvoie la liste des descripteurs appartenant à 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 caractéristique non valide n'est associé à aucun service (construit par défaut) ou le service associé n'est plus valide en raison d'une déconnexion du dispositif Bluetooth Low Energy sous-jacent, par exemple. Une fois que l'objet est invalide, il ne peut plus devenir valide.

Remarque : si une instance QLowEnergyCharacteristic devient invalide à la suite d'une déconnexion du dispositif 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'homme de la caractéristique.

Le nom est basé sur la caractéristique uuid() qui doit avoir été normalisée. La liste complète des types de caractéristiques se trouve sous Bluetooth.org Characteristics.

La chaîne renvoyée est vide si la caractéristique uuid() est inconnue.

Voir également QBluetoothUuid::characteristicToString().

QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristic::properties() const

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

Les 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 isValid() renvoie true; sinon un UUID null.

QByteArray QLowEnergyCharacteristic::value() const

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

Si properties() permet l'écriture de nouvelles valeurs, la valeur peut être mise à jour à l'aide de QLowEnergyService::writeCharacteristic().

Le cache est mis à jour lors de l'exécution du service associé detail discovery, d'une opération read/write réussie ou de la réception d'une notification de mise à jour.

L'adresse QByteArray renvoyée reste toujours vide si la caractéristique n'a pas la valeur read permission. Dans ce cas, seules les adresses QLowEnergyService::characteristicChanged() ou QLowEnergyService::characteristicWritten() peuvent fournir des informations sur la valeur de cette caractéristique.

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

Fait une copie de other et l'affecte à l'objet QLowEnergyCharacteristic. Les deux copies continuent à partager les mêmes détails de service et de contrôleur.

Documentation sur les variables membres

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDDisable

Modèle de bits à é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 aussi QLowEnergyCharacteristic::clientCharacteristicConfiguration.

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableIndication

Modèle de bits à é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 aussi QLowEnergyCharacteristic::clientCharacteristicConfiguration.

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableNotification

Modèle de bits à é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 aussi QLowEnergyCharacteristic::clientCharacteristicConfiguration.

Non-membres apparentés

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

Renvoie true si a et b ne sont pas égaux ; sinon false.

Deux instances de QLowEnergyCharcteristic sont considérées comme égales si elles se réfèrent à la même caractéristique sur le même dispositif 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 se réfèrent à la même caractéristique sur le même dispositif 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.