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 |
Éléments non membres associés
| 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.
| Constante | Valeur | Description |
|---|---|---|
QLowEnergyCharacteristic::Unknown | 0x00 | Le type n’est pas connu. |
QLowEnergyCharacteristic::Broadcasting | 0x01 | Autoriser la diffusion des valeurs de caractéristiques GATT (Generic Attributes). |
QLowEnergyCharacteristic::Read | 0x02 | Autorise la lecture des valeurs de caractéristiques. |
QLowEnergyCharacteristic::WriteNoResponse | 0x04 | Permet l’écriture des valeurs de caractéristiques sans réponse. |
QLowEnergyCharacteristic::Write | 0x08 | Permet l'écriture des valeurs de caractéristiques. |
QLowEnergyCharacteristic::Notify | 0x10 | Permet la notification des valeurs de caractéristiques. |
QLowEnergyCharacteristic::Indicate | 0x20 | Autorise l'indication des valeurs de caractéristiques. |
QLowEnergyCharacteristic::WriteSigned | 0x40 | Autorise les écritures signées des valeurs de caractéristique GATT. |
QLowEnergyCharacteristic::ExtendedProperty | 0x80 | Des 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.