QLowEnergyCharacteristic Class
Die Klasse „QLowEnergyCharacteristic“ speichert Informationen zu einer Dienstcharakteristik von Bluetooth Low Energy. Mehr...
| Header: | #include <QLowEnergyCharacteristic> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Bluetooth) target_link_libraries(mytarget PRIVATE Qt6::Bluetooth) |
| qmake: | QT += bluetooth |
Öffentliche Typen
| enum | PropertyType { Unknown, Broadcasting, Read, WriteNoResponse, Write, …, ExtendedProperty } |
| flags | PropertyTypes |
Öffentliche Funktionen
| 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) |
Statische öffentliche Elemente
(since 6.2) const QByteArray | CCCDDisable |
(since 6.2) const QByteArray | CCCDEnableIndication |
(since 6.2) const QByteArray | CCCDEnableNotification |
Verwandte Nicht-Mitglieder
| bool | operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b) |
| bool | operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b) |
Ausführliche Beschreibung
QLowEnergyCharacteristic liefert Informationen zu den Merkmalen „ name()“, „ uuid()“, „ value()“, „ properties()“ und „ descriptors()“ eines Bluetooth Low Energy-Dienstmerkmals. Um die Spezifikation und Informationen des Merkmals abzurufen, muss eine Verbindung zum Gerät über die Klassen „ QLowEnergyService “ und „ QLowEnergyController “ hergestellt werden.
Der Merkmalswert kann über die Instanz „ QLowEnergyService “ geschrieben werden, die den Dienst verwaltet, zu dem dieses Merkmal gehört. Die Funktion „ QLowEnergyService::writeCharacteristic()“ schreibt den neuen Wert. Bei Erfolg wird das Signal „ QLowEnergyService::characteristicWritten()“ ausgelöst. Die „ value()“-Methode dieses Objekts wird automatisch entsprechend aktualisiert.
Merkmale können keine, einen oder mehrere Deskriptoren enthalten. Sie können einzeln mit der Funktion „ descriptor()“ abgerufen werden. Die Funktion „ descriptors()“ gibt alle Deskriptoren als Liste zurück. Der allgemeine Zweck eines Deskriptors besteht darin, dem Merkmal Kontextinformationen hinzuzufügen. Beispielsweise könnte der Deskriptor Format- oder Bereichsinformationen bereitstellen, die angeben, wie der Wert des Merkmals zu interpretieren ist.
Siehe auch QLowEnergyService und QLowEnergyDescriptor.
Dokumentation zu Mitgliedstypen
enum QLowEnergyCharacteristic::PropertyType
flags QLowEnergyCharacteristic::PropertyTypes
Diese Enumeration beschreibt die Eigenschaften eines Merkmals.
| Konstante | Wert | Beschreibung |
|---|---|---|
QLowEnergyCharacteristic::Unknown | 0x00 | Der Typ ist nicht bekannt. |
QLowEnergyCharacteristic::Broadcasting | 0x01 | Ermöglicht die Übertragung von Merkmalswerten über Generic Attributes (GATT). |
QLowEnergyCharacteristic::Read | 0x02 | Ermöglicht das Auslesen der Merkmalswerte. |
QLowEnergyCharacteristic::WriteNoResponse | 0x04 | Erlaubt das Schreiben von Merkmalswerten ohne Rückmeldungen. |
QLowEnergyCharacteristic::Write | 0x08 | Ermöglicht das Schreiben von Merkmalswerten. |
QLowEnergyCharacteristic::Notify | 0x10 | Erlaubt die Benachrichtigung über Merkmalswerte. |
QLowEnergyCharacteristic::Indicate | 0x20 | Erlaubt die Anzeige von Merkmalswerten. |
QLowEnergyCharacteristic::WriteSigned | 0x40 | Erlaubt signierte Schreibvorgänge der GATT-Merkmalswerte. |
QLowEnergyCharacteristic::ExtendedProperty | 0x80 | Weitere Merkmalseigenschaften sind im Deskriptor für erweiterte Eigenschaften des Merkmals definiert. |
Es wird nicht empfohlen, sowohl die Eigenschaft „Notify“ als auch die Eigenschaft „Indicate“ für dasselbe Merkmal festzulegen, da sich das Verhalten des zugrunde liegenden Bluetooth-Stacks von Plattform zu Plattform unterscheidet. Siehe QLowEnergyCharacteristic::clientCharacteristicConfiguration
Der Typ „PropertyTypes“ ist ein typedef für „QFlags<PropertyType>“. Er speichert eine ODER-Kombination von „PropertyType“-Werten.
Siehe auch ` properties()`.
Dokumentation der Mitgliedsfunktionen
QLowEnergyCharacteristic::QLowEnergyCharacteristic()
Erstellen Sie ein neues `QLowEnergyCharacteristic`. Eine mit der Standardkonstruktion erstellte Instanz dieser Klasse ist immer ungültig.
Siehe auch „ isValid()“.
QLowEnergyCharacteristic::QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)
Erstellen Sie ein neues `QLowEnergyCharacteristic`, das eine Kopie von ` other` ist.
Die beiden Kopien nutzen weiterhin dieselben zugrunde liegenden Daten, die beim Schreiben nicht getrennt werden.
[noexcept] QLowEnergyCharacteristic::~QLowEnergyCharacteristic()
Löscht das „ QLowEnergyCharacteristic “-Objekt.
[since 6.2] QLowEnergyDescriptor QLowEnergyCharacteristic::clientCharacteristicConfiguration() const
Gibt den Client-Merkmalskonfigurationsdeskriptor zurück oder eine ungültige Instanz von „ QLowEnergyDescriptor “, falls kein Client-Merkmalskonfigurationsdeskriptor vorhanden ist.
BTLE-Merkmale können Benachrichtigungen und/oder Meldungen unterstützen. In beiden Fällen informiert das Peripheriegerät die Zentrale bei jeder Änderung des Merkmalswerts. Im BTLE-Attributprotokoll werden Benachrichtigungen von der Zentrale nicht bestätigt, während Meldungen bestätigt werden. Benachrichtigungen gelten als schneller, aber unzuverlässig, während Meldungen langsamer und zuverlässiger sind.
Wenn ein Merkmal Benachrichtigungen oder Anzeigen unterstützt, können diese aktiviert werden, indem spezielle Bitmuster in den Client-Merkmalskonfigurationsdeskriptor geschrieben werden. Der Einfachheit halber werden diese Bitmuster als „ QLowEnergyCharacteristic::CCCDDisable “, „ QLowEnergyCharacteristic::CCCDEnableNotification “ und „ QLowEnergyCharacteristic::CCCDEnableIndication “ bereitgestellt.
Das Aktivieren beispielsweise der Benachrichtigung für ein Merkmal namens „ mycharacteristic “ in einem Dienst namens „ myservice “ könnte mit dem folgenden Code erfolgen.
auto cccd = mycharacteristic.clientCharacteristicConfiguration();
if (!cccd.isValid()) {
// your error handling
return error;
}
myservice->writeDescriptor(cccd, QLowEnergyCharacteristic::CCCDEnableNotification);Hinweis: Der Aufruf von „ characteristic.clientCharacteristicConfiguration() “ entspricht dem Aufruf von „ characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration) “.
Hinweis: Es wird nicht empfohlen, sowohl Benachrichtigungen als auch Anzeigen für dasselbe Merkmal zu verwenden. Dies gilt sowohl serverseitig beim Einrichten der Merkmale als auch clientseitig beim Aktivieren derselben. Das Verhalten des Bluetooth-Stacks unterscheidet sich von Plattform zu Plattform, und das plattformübergreifende Verhalten ist wahrscheinlich inkonsistent. Beispielsweise könnte ein Bluez-Linux-Client bedingungslos versuchen, beide Mechanismen zu aktivieren, wenn beide unterstützt werden, während ein macOS-Client möglicherweise bedingungslos nur die Benachrichtigungen aktiviert. Wenn beide benötigt werden, sollten Sie in Erwägung ziehen, zwei separate Merkmale zu erstellen.
Diese Funktion wurde in Qt 6.2 eingeführt.
Siehe auch „ descriptor()“.
QLowEnergyDescriptor QLowEnergyCharacteristic::descriptor(const QBluetoothUuid &uuid) const
Gibt den Deskriptor für „ uuid “ oder eine ungültige Instanz von „ QLowEnergyDescriptor “ zurück.
Siehe auch descriptors().
QList<QLowEnergyDescriptor> QLowEnergyCharacteristic::descriptors() const
Gibt die Liste der zu diesem Merkmal gehörenden Deskriptoren zurück; andernfalls eine leere Liste.
Siehe auch „ descriptor()“.
bool QLowEnergyCharacteristic::isValid() const
Gibt „ true “ zurück, wenn das „ QLowEnergyCharacteristic “-Objekt gültig ist, andernfalls „ false “.
Ein ungültiges Merkmalobjekt ist keinem Dienst zugeordnet (Standardkonstruktion) oder der zugehörige Dienst ist nicht mehr gültig, beispielsweise aufgrund einer Unterbrechung der Verbindung zum zugrunde liegenden Bluetooth Low Energy-Gerät. Sobald das Objekt ungültig ist, kann es nicht mehr gültig werden.
Hinweis: Wenn eine „ QLowEnergyCharacteristic “-Instanz aufgrund einer Unterbrechung der Verbindung zum zugrunde liegenden Gerät ungültig wird, bleiben die von der aktuellen Instanz gekapselten Informationen so erhalten, wie sie zum Zeitpunkt der Unterbrechung waren. Daher können sie nach dem Verbindungsabbruch abgerufen werden.
QString QLowEnergyCharacteristic::name() const
Gibt den für Menschen lesbaren Namen des Merkmals zurück.
Der Name basiert auf dem „ uuid()“ des Merkmals, das standardisiert sein muss. Die vollständige Liste der Merkmalstypen finden Sie unter „Bluetooth.org Characteristics“.
Die zurückgegebene Zeichenkette ist leer, wenn die Funktion ` uuid()` unbekannt ist.
Siehe auch ` QBluetoothUuid::characteristicToString()`.
QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristic::properties() const
Gibt die Eigenschaften des Merkmals zurück.
Die Eigenschaften legen die Zugriffsberechtigungen für das Merkmal fest.
QBluetoothUuid QLowEnergyCharacteristic::uuid() const
Gibt die UUID des Merkmals zurück, wenn „ isValid()“ „ true “ zurückgibt; andernfalls eine UUID vom Typ „ null “.
QByteArray QLowEnergyCharacteristic::value() const
Gibt den zwischengespeicherten Wert des Merkmals zurück.
Wenn die Methode „ properties()“ des Merkmals das Schreiben neuer Werte zulässt, kann der Wert mit „ QLowEnergyService::writeCharacteristic()“ aktualisiert werden.
Der Cache wird während des „ detail discovery “ des zugehörigen Dienstes, bei einer erfolgreichen „ read “-/„write “-Operation oder beim Empfang einer Aktualisierungsbenachrichtigung aktualisiert.
Der zurückgegebene Wert von ` QByteArray ` bleibt immer leer, wenn das Merkmal keine ` read permission` aufweist. In solchen Fällen können nur die Methoden ` QLowEnergyService::characteristicChanged()` oder ` QLowEnergyService::characteristicWritten()` Informationen über den Wert dieses Merkmals liefern.
QLowEnergyCharacteristic &QLowEnergyCharacteristic::operator=(const QLowEnergyCharacteristic &other)
Erstellt eine Kopie von „ other “ und weist sie diesem „ QLowEnergyCharacteristic “-Objekt zu. Die beiden Kopien nutzen weiterhin dieselben Service- und Controller-Details.
Dokumentation zu Member-Variablen
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDDisable
Bitmuster, das in den Client-Merkmalskonfigurationsdeskriptor geschrieben werden muss, um sowohl Benachrichtigungen als auch Anzeigen zu deaktivieren.
Diese Variable wurde in Qt 6.2 eingeführt.
Siehe auch QLowEnergyCharacteristic::clientCharacteristicConfiguration.
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableIndication
Bitmuster, das in den Client-Merkmalskonfigurationsdeskriptor geschrieben werden muss, um die Anzeige zu aktivieren.
Diese Variable wurde in Qt 6.2 eingeführt.
Siehe auch QLowEnergyCharacteristic::clientCharacteristicConfiguration.
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableNotification
Bitmuster, das in den Client-Merkmalskonfigurationsdeskriptor geschrieben werden muss, um Benachrichtigungen zu aktivieren.
Diese Variable wurde in Qt 6.2 eingeführt.
Siehe auch QLowEnergyCharacteristic::clientCharacteristicConfiguration.
Verwandte Nicht-Mitglieder
bool operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
Gibt „ true “ zurück, wenn „ a “ und „ b “ nicht gleich sind; andernfalls „ false “.
Zwei „QLowEnergyCharacteristic“-Instanzen gelten als gleich, wenn sie sich auf dieselbe Eigenschaft desselben entfernten Bluetooth-Low-Energy-Geräts beziehen oder wenn beide Instanzen standardmäßig initialisiert wurden.
bool operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
Gibt „ true “ zurück, wenn „ a “ gleich „ b “ ist, andernfalls „ false “.
Zwei Instanzen von ` QLowEnergyCharacteristic ` gelten als gleich, wenn sie sich auf dasselbe Merkmal desselben entfernten Bluetooth-Low-Energy-Geräts beziehen oder wenn beide Instanzen standardmäßig initialisiert wurden.
© 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.