QLowEnergyCharacteristic Class

Die Klasse QLowEnergyCharacteristic speichert Informationen über ein Bluetooth Low Energy Dienstmerkmal. Mehr...

Header: #include <QLowEnergyCharacteristic>
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 Mitglieder

(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)

Detaillierte Beschreibung

QLowEnergyCharacteristic liefert Informationen über die Merkmale eines Bluetooth Low Energy Dienstes name(), uuid(), value(), properties() und descriptors(). Um die Spezifikation und die Informationen des Merkmals zu erhalten, ist es notwendig, sich mit dem Gerät über die Klassen QLowEnergyService und QLowEnergyController zu verbinden.

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() ausgegeben. Die value() dieses Objekts wird automatisch entsprechend aktualisiert.

Merkmale können keinen, 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 kontextbezogene Informationen hinzuzufügen. Der Deskriptor kann zum Beispiel Format- oder Bereichsinformationen liefern, die angeben, wie der Wert des Merkmals zu interpretieren ist.

Siehe auch QLowEnergyService und QLowEnergyDescriptor.

Dokumentation der Mitgliedstypen

enum QLowEnergyCharacteristic::PropertyType
flags QLowEnergyCharacteristic::PropertyTypes

Diese Aufzählung beschreibt die Eigenschaften eines Merkmals.

KonstanteWertBeschreibung
QLowEnergyCharacteristic::Unknown0x00Der Typ ist nicht bekannt.
QLowEnergyCharacteristic::Broadcasting0x01Erlaubt das Senden von generischen Attributen (GATT) Merkmalswerten.
QLowEnergyCharacteristic::Read0x02Erlaubt das Lesen der Merkmalswerte.
QLowEnergyCharacteristic::WriteNoResponse0x04Erlaubt das Schreiben von Merkmalswerten ohne Antworten.
QLowEnergyCharacteristic::Write0x08Erlaubt das Schreiben von Merkmalswerten.
QLowEnergyCharacteristic::Notify0x10Erlaubt die Meldung von Merkmalswerten.
QLowEnergyCharacteristic::Indicate0x20Erlaubt die Anzeige von Merkmalswerten.
QLowEnergyCharacteristic::WriteSigned0x40Erlaubt das signierte Schreiben der GATT-Merkmalswerte.
QLowEnergyCharacteristic::ExtendedProperty0x80Zusätzliche Merkmalseigenschaften werden im erweiterten Eigenschaftsdeskriptor des Merkmals definiert.

Es wird nicht empfohlen, die Eigenschaften Benachrichtigen und Anzeigen für dasselbe Merkmal festzulegen, da sich die zugrunde liegenden Bluetooth-Stack-Verhaltensweisen von Plattform zu Plattform unterscheiden. Bitte beachten Sie 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()

Konstruiert ein neues QLowEnergyCharacteristic. Eine standardmäßig konstruierte Instanz dieser Klasse ist immer ungültig.

Siehe auch isValid().

QLowEnergyCharacteristic::QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)

Konstruieren Sie eine neue QLowEnergyCharacteristic, die eine Kopie von other ist.

Die beiden Kopien teilen sich weiterhin die gleichen zugrunde liegenden Daten, die beim Schreiben nicht getrennt werden.

[noexcept] QLowEnergyCharacteristic::~QLowEnergyCharacteristic()

Zerstört das Objekt QLowEnergyCharacteristic.

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

Gibt den Client Characteristic Configuration Descriptor zurück oder eine ungültige QLowEnergyDescriptor Instanz, wenn kein Client Characteristic Configuration Descriptor existiert.

BTLE-Merkmale können Benachrichtigungen und/oder Anzeigen unterstützen. In beiden Fällen informiert das Peripheriegerät die Zentrale über jede Änderung des Merkmalswerts. Im BTLE-Attributprotokoll werden Benachrichtigungsmeldungen von der Zentrale nicht bestätigt, während Anzeigen bestätigt werden. Meldungen gelten als schneller, aber unzuverlässiger, während Anzeigen langsamer und zuverlässiger sind.

Wenn ein Merkmal Benachrichtigungen oder Anzeigen unterstützt, können diese durch Schreiben spezieller Bitmuster in den Konfigurationsdeskriptor des Client-Merkmals aktiviert werden. Der Einfachheit halber werden diese Bitmuster als QLowEnergyCharacteristic::CCCDDisable, QLowEnergyCharacteristic::CCCDEnableNotification und QLowEnergyCharacteristic::CCCDEnableIndication angegeben.

Die Aktivierung einer Benachrichtigung für ein Merkmal mit dem Namen mycharacteristic in einem Dienst mit dem Namen myservice könnte z. B. 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() ist gleichbedeutend mit dem Aufruf von characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration).

Hinweis: Es wird nicht empfohlen, sowohl Benachrichtigungen als auch Hinweise für dasselbe Merkmal zu verwenden. Dies gilt sowohl für die Serverseite beim Einrichten der Merkmale als auch für die Clientseite beim Aktivieren der Merkmale. Das Verhalten des Bluetooth-Stacks unterscheidet sich von Plattform zu Plattform und das plattformübergreifende Verhalten wird wahrscheinlich inkonsistent sein. Ein Bluez-Linux-Client könnte zum Beispiel versuchen, beide Mechanismen bedingungslos zu aktivieren, wenn beide unterstützt werden, während ein macOS-Client nur die Benachrichtigungen bedingungslos aktivieren könnte. Wenn beides benötigt wird, sollten Sie zwei separate Merkmale 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 QLowEnergyDescriptor Instanz zurück.

Siehe auch descriptors().

QList<QLowEnergyDescriptor> QLowEnergyCharacteristic::descriptors() const

Gibt die Liste der Deskriptoren zurück, die zu diesem Merkmal gehören; andernfalls eine leere Liste.

Siehe auch descriptor().

bool QLowEnergyCharacteristic::isValid() const

Gibt true zurück, wenn das Objekt QLowEnergyCharacteristic gültig ist, andernfalls gibt es false zurück.

Ein ungültiges Merkmalsobjekt ist mit keinem Dienst verbunden (standardmäßig konstruiert) oder der zugehörige Dienst ist nicht mehr gültig, z. B. weil die Verbindung zum zugrunde liegenden Bluetooth Low Energy Gerät unterbrochen wurde. Sobald das Objekt ungültig ist, kann es nicht mehr gültig werden.

Hinweis: Wenn eine Instanz von QLowEnergyCharacteristic aufgrund einer Trennung vom zugrunde liegenden Gerät ungültig wird, bleiben die von der aktuellen Instanz gekapselten Informationen so erhalten, wie sie zum Zeitpunkt der Trennung waren. Daher können sie nach dem Trennen der Verbindung wieder abgerufen werden.

QString QLowEnergyCharacteristic::name() const

Gibt den menschenlesbaren 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 Merkmale.

Die zurückgegebene Zeichenkette ist leer, wenn die uuid() unbekannt ist.

Siehe auch QBluetoothUuid::characteristicToString().

QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristic::properties() const

Gibt die Eigenschaften des Merkmals zurück.

Die Eigenschaften definieren die Zugriffsberechtigungen für das Merkmal.

QBluetoothUuid QLowEnergyCharacteristic::uuid() const

Gibt die UUID des Merkmals zurück, wenn isValid() true zurückgibt; andernfalls eine null UUID.

QByteArray QLowEnergyCharacteristic::value() const

Gibt den zwischengespeicherten Wert des Merkmals zurück.

Wenn die properties() des Merkmals das Schreiben neuer Werte erlaubt, kann der Wert mit QLowEnergyService::writeCharacteristic() aktualisiert werden.

Der Cache wird während des detail discovery des zugehörigen Dienstes, bei einem erfolgreichen read/write Vorgang oder bei Erhalt einer Aktualisierungsmeldung aktualisiert.

Die zurückgegebene QByteArray bleibt immer leer, wenn das Merkmal die read permission nicht hat. In solchen Fällen kann nur die QLowEnergyService::characteristicChanged() oder QLowEnergyService::characteristicWritten() Informationen über den Wert dieses Merkmals liefern.

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

Erstellt eine Kopie von other und ordnet sie diesem QLowEnergyCharacteristic Objekt zu. Die beiden Kopien teilen sich weiterhin dieselben Dienst- und Steuerungsdetails.

Dokumentation der Mitgliedsvariablen

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDDisable

Bitmuster, das in den Client Characteristic Configuration Descriptor zu schreiben ist, um sowohl Benachrichtigung als auch Anzeige zu deaktivieren.

Diese Dokumentation wurde in Qt 6.2 eingeführt.

Siehe auch QLowEnergyCharacteristic::clientCharacteristicConfiguration.

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableIndication

Bitmuster, das in den Client Characteristic Configuration Descriptor geschrieben wird, um die Anzeige zu aktivieren.

Diese Dokumentation wurde in Qt 6.2 eingeführt.

Siehe auch QLowEnergyCharacteristic::clientCharacteristicConfiguration.

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableNotification

Bitmuster, das in den Client Characteristic Configuration Descriptor geschrieben wird, um die Benachrichtigung zu aktivieren.

Diese Dokumentation 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 QLowEnergyCharcteristic-Instanzen werden als gleich angesehen, wenn sie sich auf dasselbe Merkmal auf demselben entfernten Bluetooth Low Energy Gerät beziehen oder beide Instanzen standardmäßig konstruiert wurden.

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

Gibt true zurück, wenn a gleich b ist, andernfalls false.

Zwei QLowEnergyCharacteristic Instanzen werden als gleich angesehen, wenn sie sich auf dasselbe Merkmal auf demselben entfernten Bluetooth Low Energy Gerät beziehen oder beide Instanzen standardmäßig konstruiert wurden.

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