QLowEnergyCharacteristic Class
La clase QLowEnergyCharacteristic almacena información sobre una característica de servicio Bluetooth Low Energy. Más...
| Cabecera: | #include <QLowEnergyCharacteristic> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Bluetooth)target_link_libraries(mytarget PRIVATE Qt6::Bluetooth) |
| qmake: | QT += bluetooth |
Tipos Públicos
| enum | PropertyType { Unknown, Broadcasting, Read, WriteNoResponse, Write, …, ExtendedProperty } |
| flags | PropertyTypes |
Funciones Públicas
| 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) |
Miembros públicos estáticos
(since 6.2) const QByteArray | CCCDDisable |
(since 6.2) const QByteArray | CCCDEnableIndication |
(since 6.2) const QByteArray | CCCDEnableNotification |
No miembros relacionados
| bool | operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b) |
| bool | operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b) |
Descripción detallada
QLowEnergyCharacteristic proporciona información sobre una característica del servicio Bluetooth Low Energy name(), uuid(), value(), properties(), y descriptors(). Para obtener la especificación y la información de la característica, es necesario conectarse al dispositivo mediante las clases QLowEnergyService y QLowEnergyController.
El valor de la característica puede escribirse a través de la instancia QLowEnergyService que gestiona el servicio al que pertenece esta característica. La función QLowEnergyService::writeCharacteristic() escribe el nuevo valor. La señal QLowEnergyService::characteristicWritten() se emite en caso de éxito. El value() de este objeto se actualiza automáticamente en consecuencia.
Las características pueden no contener ninguno, uno o varios descriptores. Pueden recuperarse individualmente mediante la función descriptor(). La función descriptors() devuelve todos los descriptores en forma de lista. El objetivo general de un descriptor es añadir información contextual a la característica. Por ejemplo, el descriptor puede proporcionar información sobre el formato o el intervalo que especifica cómo debe interpretarse el valor de la característica.
Véase también QLowEnergyService y QLowEnergyDescriptor.
Documentación de tipos de miembros
enum QLowEnergyCharacteristic::PropertyType
flags QLowEnergyCharacteristic::PropertyTypes
Este enum describe las propiedades de una característica.
| Constante | Valor | Descripción |
|---|---|---|
QLowEnergyCharacteristic::Unknown | 0x00 | No se conoce el tipo. |
QLowEnergyCharacteristic::Broadcasting | 0x01 | Permitir la difusión de valores de característica de Atributos Genéricos (GATT). |
QLowEnergyCharacteristic::Read | 0x02 | Permitir la lectura de los valores de característica. |
QLowEnergyCharacteristic::WriteNoResponse | 0x04 | Permitir que se escriban los valores de característica sin respuestas. |
QLowEnergyCharacteristic::Write | 0x08 | Permitir la escritura de valores de característica. |
QLowEnergyCharacteristic::Notify | 0x10 | Permitir la notificación de valores de característica. |
QLowEnergyCharacteristic::Indicate | 0x20 | Permitir la indicación de valores de característica. |
QLowEnergyCharacteristic::WriteSigned | 0x40 | Permite la escritura firmada de los valores de característica GATT. |
QLowEnergyCharacteristic::ExtendedProperty | 0x80 | Las propiedades adicionales de las características se definen en el descriptor de propiedades ampliado de la característica. |
No se recomienda establecer las propiedades Notify e Indicate en la misma característica, ya que los comportamientos subyacentes de la pila Bluetooth difieren de una plataforma a otra. Consulte QLowEnergyCharacteristic::clientCharacteristicConfiguration
El tipo PropertyTypes es un tippedef para QFlags<PropertyType>. Almacena una combinación OR de valores PropertyType.
Véase también properties().
Documentación de las funciones miembro
QLowEnergyCharacteristic::QLowEnergyCharacteristic()
Construye un nuevo QLowEnergyCharacteristic. Una instancia de esta clase construida por defecto siempre es inválida.
Véase también isValid().
QLowEnergyCharacteristic::QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)
Construye una nueva QLowEnergyCharacteristic que es una copia de other.
Las dos copias siguen compartiendo los mismos datos subyacentes que no se separan al escribir.
[noexcept] QLowEnergyCharacteristic::~QLowEnergyCharacteristic()
Destruye el objeto QLowEnergyCharacteristic.
[since 6.2] QLowEnergyDescriptor QLowEnergyCharacteristic::clientCharacteristicConfiguration() const
Devuelve el Descriptor de Configuración de Características del Cliente o una instancia no válida de QLowEnergyDescriptor si no existe ningún Descriptor de Configuración de Características del Cliente.
Las características BTLE pueden admitir notificaciones y/o indicaciones. En ambos casos, el periférico informará a la central sobre cada cambio del valor de la característica. En el protocolo de atributos BTLE, los mensajes de notificación no son confirmados por la central, mientras que las indicaciones sí lo son. Las notificaciones se consideran más rápidas, pero poco fiables, mientras que las indicaciones son más lentas y fiables.
Si una característica admite notificaciones o indicaciones, éstas pueden habilitarse escribiendo patrones de bits especiales en el Descriptor de configuración de características del cliente. Para mayor comodidad, estos patrones de bits se proporcionan como QLowEnergyCharacteristic::CCCDDisable, QLowEnergyCharacteristic::CCCDEnableNotification, y QLowEnergyCharacteristic::CCCDEnableIndication.
La activación, por ejemplo, de la notificación de una característica denominada mycharacteristic en un servicio denominado myservice podría realizarse mediante el siguiente código.
auto cccd = mycharacteristic.clientCharacteristicConfiguration(); if (!cccd.isValid()) { // your error handling return error; } myservice->writeDescriptor(cccd, QLowEnergyCharacteristic::CCCDEnableNotification);
Nota: Llamar a characteristic.clientCharacteristicConfiguration() es equivalente a llamar a characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration).
Nota: No se recomienda utilizar tanto notificaciones como indicaciones en la misma característica. Esto se aplica tanto al lado del servidor cuando se configuran las características, como al lado del cliente cuando se habilitan. El comportamiento de la pila bluetooth difiere de una plataforma a otra y el comportamiento entre plataformas probablemente será inconsistente. Por ejemplo, un cliente Bluez Linux podría intentar activar incondicionalmente ambos mecanismos si ambos son compatibles, mientras que un cliente macOS podría activar incondicionalmente sólo las notificaciones. Si ambos son necesarios considere crear dos características separadas.
Esta función se introdujo en Qt 6.2.
Véase también descriptor().
QLowEnergyDescriptor QLowEnergyCharacteristic::descriptor(const QBluetoothUuid &uuid) const
Devuelve el descriptor de uuid o una instancia no válida de QLowEnergyDescriptor.
Véase también descriptors().
QList<QLowEnergyDescriptor> QLowEnergyCharacteristic::descriptors() const
Devuelve la lista de descriptores pertenecientes a esta característica; en caso contrario, una lista vacía.
Véase también descriptor().
bool QLowEnergyCharacteristic::isValid() const
Devuelve true si el objeto QLowEnergyCharacteristic es válido, en caso contrario devuelve false.
Un objeto característico no válido no está asociado a ningún servicio (construido por defecto) o el servicio asociado ya no es válido debido a una desconexión del dispositivo Bluetooth Low Energy subyacente, por ejemplo. Una vez que el objeto es inválido, ya no puede volver a ser válido.
Nota: Si una instancia de QLowEnergyCharacteristic deja de ser válida debido a una desconexión del dispositivo subyacente, la información encapsulada por la instancia actual permanece como estaba en el momento de la desconexión. Por lo tanto, se puede recuperar después del evento de desconexión.
QString QLowEnergyCharacteristic::name() const
Devuelve el nombre legible de la característica.
El nombre se basa en la dirección uuid() de la característica, que debe haber sido normalizada. La lista completa de tipos de características se encuentra en Bluetooth.org Characteristics.
La cadena devuelta está vacía si uuid() es desconocida.
Véase también QBluetoothUuid::characteristicToString().
QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristic::properties() const
Devuelve las propiedades de la característica.
Las propiedades definen los permisos de acceso para la característica.
QBluetoothUuid QLowEnergyCharacteristic::uuid() const
Devuelve el UUID de la característica si isValid() devuelve true; en caso contrario un UUID null.
QByteArray QLowEnergyCharacteristic::value() const
Devuelve el valor almacenado en caché de la característica.
Si properties() de la característica permite escribir nuevos valores, el valor puede actualizarse mediante QLowEnergyService::writeCharacteristic().
La caché se actualiza durante el servicio asociado detail discovery, una operación read/write realizada con éxito o cuando se recibe una notificación de actualización.
El QByteArray devuelto siempre permanece vacío si la característica no tiene el read permission. En tales casos, sólo el QLowEnergyService::characteristicChanged() o el QLowEnergyService::characteristicWritten() pueden proporcionar información sobre el valor de esta característica.
QLowEnergyCharacteristic &QLowEnergyCharacteristic::operator=(const QLowEnergyCharacteristic &other)
Hace una copia de other y la asigna a este objeto QLowEnergyCharacteristic. Las dos copias siguen compartiendo los mismos detalles de servicio y controlador.
Documentación de variables miembro
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDDisable
Patrón de bits a escribir en el Descriptor de Configuración de Características del Cliente para desactivar tanto la notificación como la indicación.
Esta variable se introdujo en Qt 6.2.
Véase también QLowEnergyCharacteristic::clientCharacteristicConfiguration.
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableIndication
Patrón de bits a escribir en el Descriptor de Configuración de Características del Cliente para habilitar la indicación.
Esta variable se introdujo en Qt 6.2.
Véase también QLowEnergyCharacteristic::clientCharacteristicConfiguration.
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableNotification
Patrón de bits a escribir en el Descriptor de Configuración de Características del Cliente para habilitar la notificación.
Esta variable se introdujo en Qt 6.2.
Véase también QLowEnergyCharacteristic::clientCharacteristicConfiguration.
No miembros relacionados
bool operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
Devuelve true si a y b no son iguales; en caso contrario false.
Dos instancias de QLowEnergyCharcteristic se consideran iguales si se refieren a la misma característica en el mismo dispositivo remoto Bluetooth Low Energy o si ambas instancias se han construido por defecto.
bool operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
Devuelve true si a es igual a b, en caso contrario false.
Dos instancias de QLowEnergyCharacteristic se consideran iguales si se refieren a la misma característica en el mismo dispositivo Bluetooth Low Energy remoto o si ambas instancias se han construido por defecto.
© 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.