Класс QLowEnergyCharacteristic
Класс QLowEnergyCharacteristic хранит информацию о характеристике Bluetooth Low Energy-сервиса. Подробнее...
| Заголовок: | #include <QLowEnergyCharacteristic> |
| qmake: | QT += bluetooth |
| С момента: | Qt 5.4 |
Типы публичного доступа
| Перечисление | PropertyType { Unknown, Broadcasting, Read, WriteNoResponse, Write, …, ExtendedProperty } |
| Флаги | PropertyTypes |
Функции публичного доступа
| QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other) | |
| QLowEnergyCharacteristic() | |
| QLowEnergyCharacteristic & | operator=(const QLowEnergyCharacteristic &other) |
| ~QLowEnergyCharacteristic() | |
| 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 |
Статические члены публичного доступа
| const QByteArray | CCCDDisable |
| const QByteArray | CCCDEnableIndication |
| const QByteArray | CCCDEnableNotification |
Связанные нечлены
| bool | operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b) |
| bool | operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b) |
Подробное описание
QLowEnergyCharacteristic предоставляет информацию о характеристике Bluetooth Low Energy-сервиса: имя(), uuid(), значение(), свойства() и описатели(). Для получения спецификаций и информации о характеристике необходимо подключиться к устройству, используя классы QLowEnergyService и QLowEnergyController.
Значение характеристики может быть записано через экземпляр QLowEnergyService, управляющий сервисом, к которому принадлежит эта характеристика. Функция QLowEnergyService::writeCharacteristic() записывает новое значение. Сигнал QLowEnergyService::characteristicWritten() генерируется при успехе. Значение value() этого объекта автоматически обновляется соответственно.
Характеристики могут содержать ноль, один или несколько описателей. Они могут быть получены индивидуально с помощью функции descriptor(). Функция descriptors() возвращает все описатели в виде списка. Основное назначение описателя — добавление контекстной информации к характеристике. Например, описатель может предоставлять информацию о формате или диапазоне, указывающую, как интерпретировать значение характеристики.
См. также QLowEnergyService и QLowEnergyDescriptor.
Документация по типам членов
Перечисление QLowEnergyCharacteristic::PropertyTypeФлаги QLowEnergyCharacteristic::PropertyTypes
Это перечисление описывает свойства характеристики.
| Постоянная | Значение | Описание |
|---|---|---|
QLowEnergyCharacteristic::Unknown |
0x00 |
Тип не известен. |
QLowEnergyCharacteristic::Broadcasting |
0x01 |
Разрешает трансляцию значений характеристик Generic Attributes (GATT). |
QLowEnergyCharacteristic::Read |
0x02 |
Разрешает чтение значений характеристик. |
QLowEnergyCharacteristic::WriteNoResponse |
0x04 |
Разрешает запись значений характеристик без ответа. |
QLowEnergyCharacteristic::Write |
0x08 |
Разрешает запись значений характеристик. |
QLowEnergyCharacteristic::Notify |
0x10 |
Разрешает уведомления о значениях характеристик. |
QLowEnergyCharacteristic::Indicate |
0x20 |
Разрешает указания значений характеристик. |
QLowEnergyCharacteristic::WriteSigned |
0x40 |
Разрешает подписание записей значений характеристик GATT. |
QLowEnergyCharacteristic::ExtendedProperty |
0x80 |
Дополнительные свойства характеристик определены в описателе расширенных свойств характеристики. |
Не рекомендуется устанавливать оба свойства Notify и Indicate для одной характеристики, так как поведение базового стека Bluetooth отличается от платформы к платформе. Обратитесь к QLowEnergyCharacteristic::clientCharacteristicConfiguration
Тип PropertyTypes — псевдоним для QFlags<PropertyType>. Он хранит логическое ИЛИ сочетание значений PropertyType.
См. также properties().
Документация по функциям членов
QLowEnergyCharacteristic::QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)
Создает новый QLowEnergyCharacteristic, являющийся копией other.
Обе копии продолжают совместно использовать те же данные, которые не отсоединяются при записи.
QLowEnergyCharacteristic::QLowEnergyCharacteristic()
Создает новый QLowEnergyCharacteristic. Экземпляр, созданный по умолчанию, всегда недействителен.
См. также isValid().
QLowEnergyCharacteristic &QLowEnergyCharacteristic::operator=(const QLowEnergyCharacteristic &other)
Создает копию other и присваивает её текущему объекту QLowEnergyCharacteristic. Обе копии продолжают совместно использовать те же данные сервиса и контроллера.
QLowEnergyCharacteristic::~QLowEnergyCharacteristic()
Уничтожает объект QLowEnergyCharacteristic.
[since 6.2] QLowEnergyDescriptor QLowEnergyCharacteristic::clientCharacteristicConfiguration() const
Возвращает дескриптор конфигурации клиента характеристик или недействительный экземпляр QLowEnergyDescriptor, если дескриптор конфигурации клиента характеристик отсутствует.
Характеристики BTLE могут поддерживать уведомления и/или указания. В обоих случаях периферийное устройство будет информировать центральный узел о каждом изменении значения характеристики. В протоколе атрибутов BTLE сообщения об уведомлениях не подтверждаются центральным узлом, в то время как указания подтверждаются. Уведомления считаются более быстрыми, но ненадежными, в то время как указания медленнее и надежнее.
Если характеристика поддерживает уведомления или указания, их можно включить, записав специальные битовые шаблоны в дескриптор конфигурации клиента характеристик. Для удобства эти битовые шаблоны предоставляются как QLowEnergyCharacteristic::CCCDDisable, QLowEnergyCharacteristic::CCCDEnableNotification и QLowEnergyCharacteristic::CCCDEnableIndication.
Включение, например, уведомлений для характеристики с именем mycharacteristic в сервисе с именем myservice можно выполнить с помощью следующего кода.
auto cccd = mycharacteristic.clientCharacteristicConfiguration();
if (!cccd.isValid()) {
// your error handling
return error;
}
myservice->writeDescriptor(cccd, QLowEnergyCharacteristic::CCCDEnableNotification); Примечание: Вызов characteristic.clientCharacteristicConfiguration() эквивалентен вызову characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration).
Примечание: Не рекомендуется использовать как уведомления, так и указания для одной и той же характеристики. Это относится как к стороне сервера при настройке характеристик, так и к стороне клиента при их включении. Поведение стека Bluetooth различается на разных платформах, и поведение на разных платформах, скорее всего, будет несовместимым. Например, клиент Bluez на Linux может безусловно попытаться включить оба механизма, если обе возможности поддерживаются, в то время как клиент macOS может безусловно включить только уведомления. Если оба необходимы, рассмотрите создание двух отдельных характеристик.
Эта функция была добавлена в Qt 6.2.
См. также descriptor().
QLowEnergyDescriptor QLowEnergyCharacteristic::descriptor(const QBluetoothUuid &uuid) const
Возвращает дескриптор для uuid или недействительный экземпляр QLowEnergyDescriptor.
См. также descriptors().
QList<QLowEnergyDescriptor> QLowEnergyCharacteristic::descriptors() const
Возвращает список дескрипторов, принадлежащих этой характеристике; в противном случае возвращает пустой список.
См. также descriptor().
bool QLowEnergyCharacteristic::isValid() const
Возвращает true, если объект QLowEnergyCharacteristic действителен, в противном случае возвращает false.
Недействительный объект характеристики не связан ни с каким сервисом (по умолчанию) или связанный сервис больше не действителен из-за отключения от устройства Bluetooth Low Energy, например. После того, как объект становится недействительным, он больше не может стать действительным.
Примечание: Если экземпляр QLowEnergyCharacteristic становится недействительным из-за отключения от базового устройства, информация, заключенная в текущем экземпляре, остается такой, какой она была в момент отключения. Поэтому она может быть получена после события отключения.
QString QLowEnergyCharacteristic::name() const
Возвращает удобочитаемое имя характеристики.
Имя основано на uuid() характеристики, который должен быть стандартизирован. Полный список типов характеристик можно найти на странице Характеристики Bluetooth.org.
Возвращаемая строка пустая, если uuid() неизвестен.
См. также QBluetoothUuid::characteristicToString().
QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristic::properties() const
Возвращает свойства характеристики.
Свойства определяют разрешения доступа к характеристике.
QBluetoothUuid QLowEnergyCharacteristic::uuid() const
Возвращает UUID характеристики, если isValid() возвращает true; в противном случае — нулевой UUID.
QByteArray QLowEnergyCharacteristic::value() const
Возвращает кэшированное значение характеристики.
Если свойства характеристики properties() допускают запись новых значений, значение можно обновить с помощью QLowEnergyService::writeCharacteristic().
Кэш обновляется во время обнаружения деталей связанного сервиса, успешной операции чтения/записи или при получении уведомления об обновлении.
Возвращаемый QByteArray всегда остается пустым, если у характеристики нет разрешения на чтение. В таких случаях только QLowEnergyService::characteristicChanged() или QLowEnergyService::characteristicWritten() могут предоставить информацию о значении этой характеристики.
Документация по переменным-членам
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDDisable
Битовый шаблон для записи в дескриптор конфигурации клиента характеристик для отключения уведомлений и указаний.
Эта документация была добавлена в Qt 6.2.
См. также QLowEnergyCharacteristic::clientCharacteristicConfiguration.
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableIndication
Битовый шаблон для записи в дескриптор конфигурации клиента характеристик для включения указаний.
Эта документация была добавлена в Qt 6.2.
См. также QLowEnergyCharacteristic::clientCharacteristicConfiguration.
[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableNotification
Битовый шаблон для записи в дескриптор конфигурации клиента характеристик для включения уведомлений.
Эта документация была добавлена в Qt 6.2.
См. также QLowEnergyCharacteristic::clientCharacteristicConfiguration.
Документация по связанным нечленам
bool operator!=(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
Возвращает true, если a и b не равны; в противном случае false.
Два экземпляра QLowEnergyCharacteristic считаются равными, если они ссылаются на одну и ту же характеристику на одном и том же удалённом устройстве Bluetooth Low Energy или оба экземпляра были созданы по умолчанию.
bool operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
Возвращает true, если a равно b; в противном случае false.
Два экземпляра QLowEnergyCharacteristic считаются равными, если они ссылаются на одну и ту же характеристику на одном и том же удалённом устройстве Bluetooth Low Energy или оба экземпляра были созданы по умолчанию.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qlowenergycharacteristic.html