QLowEnergyCharacteristic Class

QLowEnergyCharacteristic クラスは、Bluetooth Low Energy サービス特性に関する情報を保持します。詳細...

Header: #include <QLowEnergyCharacteristic>
qmake: QT += bluetooth

パブリック型

enum PropertyType { Unknown, Broadcasting, Read, WriteNoResponse, Write, …, ExtendedProperty }
flags PropertyTypes

パブリック関数

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)

静的パブリックメンバー

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

詳細説明

QLowEnergyCharacteristic は、Bluetooth Low Energy サービス特性のname(),uuid(),value(),properties(),descriptors() に関する情報を提供します。特性の仕様と情報を取得するには、QLowEnergyService およびQLowEnergyController クラスを使用してデバイスに接続する必要があります。

特性値は、この特性が属するサービスを管理するQLowEnergyService インスタンスを通じて書き込むことができる。QLowEnergyService::writeCharacteristic() 関数は新しい値を書き込む。成功すると、QLowEnergyService::characteristicWritten ()シグナルが発行される。それに応じて、このオブジェクトのvalue() も自動的に更新されます。

特性には、1 つまたは複数の記述子を含めることができます。これらの記述子は、descriptor() 関数を使用して個別に取得できます。descriptors()関数は、すべての記述子をリストとして返す。記述子の一般的な目的は、特性に文脈情報を追加することである。例えば、記述子は、特性の値の解釈方法を指定するフォーマットまたは範囲情報を提供する場合がある。

QLowEnergyService およびQLowEnergyDescriptorも参照のこと

メンバ型ドキュメント

enum QLowEnergyCharacteristic::PropertyType
flags QLowEnergyCharacteristic::PropertyTypes

この列挙型は、特性のプロパティを記述します。

定数説明
QLowEnergyCharacteristic::Unknown0x00タイプは不明です。
QLowEnergyCharacteristic::Broadcasting0x01GATT(Generic Attributes)特性値のブロードキャストを許可する。
QLowEnergyCharacteristic::Read0x02特性値の読み取りを許可する。
QLowEnergyCharacteristic::WriteNoResponse0x04応答のない特性値の書き込みを許可する。
QLowEnergyCharacteristic::Write0x08特性値の書き込みを許可する。
QLowEnergyCharacteristic::Notify0x10特性値の通知を許可する。
QLowEnergyCharacteristic::Indicate0x20特性値の表示を許可する。
QLowEnergyCharacteristic::WriteSigned0x40GATT特性値の署名付き書き込みを許可する。
QLowEnergyCharacteristic::ExtendedProperty0x80追加の特性特性は、特性の拡張特性記述子で定義される。

基本的なBluetoothスタックの動作がプラットフォームによって異なるため、同じ特性にNotifyとIndicateの両方のプロパティを設定することは推奨されない。を参照してください。QLowEnergyCharacteristic::clientCharacteristicConfiguration

PropertyTypes 型は、QFlags<PropertyType> の typedef です。これは、PropertyType 値の OR の組み合わせを格納します。

properties()も参照してください

メンバ関数ドキュメント

QLowEnergyCharacteristic::QLowEnergyCharacteristic()

新しい QLowEnergyCharacteristic を構築します。このクラスのデフォルトのインスタンスは常に無効です。

isValid()も参照してください

QLowEnergyCharacteristic::QLowEnergyCharacteristic(const QLowEnergyCharacteristic &other)

other のコピーである新しい QLowEnergyCharacteristic を構築する。

2つのコピーは、書き込み時に切り離されない同じ基礎データを共有し続けます。

[noexcept] QLowEnergyCharacteristic::~QLowEnergyCharacteristic()

QLowEnergyCharacteristic オブジェクトを破棄する。

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

クライアント特性構成記述子、またはクライアント特性構成記述子が存在しない場合は無効なQLowEnergyDescriptor インスタンスを返す。

BTLE特性は、通知または表示をサポートすることができる。どちらの場合も、周辺は特性値の各変更をセントラルに通知する。BTLE属性プロトコルでは、通知メッセージはセントラルによって確認されないが、指示は確認される。通知はより速いが信頼性が低く、指示はより遅いが信頼性が高い。

特性が通知または指示をサポートする場合、これらは、特別なビットパターンをクライアント特性構成記述子に書き込むことによって有効にすることができる。便宜上、これらのビットパターンをQLowEnergyCharacteristic::CCCDDisableQLowEnergyCharacteristic::CCCDEnableNotificationQLowEnergyCharacteristic::CCCDEnableIndication として提供する。

例えば、myservice と呼ばれるサービスにおいて、mycharacteristic という名前の特性に対する通知を有効にするには、以下のコードを使用します。

auto cccd = mycharacteristic.clientCharacteristicConfiguration();
if (!cccd.isValid()) {
    // your error handling
    return error;
}
myservice->writeDescriptor(cccd, QLowEnergyCharacteristic::CCCDEnableNotification);

注: characteristic.clientCharacteristicConfiguration() を呼び出すことは、characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration) を呼び出すことと同じです。

注意 : 同じ特性に対して、通知と表示の両方を使用することは推奨されません。これは、特性を設定するサーバー側と、特性を有効にするクライアント側の両方に当てはまります。ブルートゥーススタックの動作はプラットフォームによって異なり、クロスプラットフォームの動作は一貫していない可能性が高いです。例として、Bluez Linuxクライアントは両方のメカニズムがサポートされている場合、無条件に両方のメカニズムを有効にしようとするかもしれませんが、macOSクライアントは無条件に通知だけを有効にするかもしれません。両方が必要な場合は、2つの異なる特性を作成することを検討してください。

この関数は Qt 6.2 で導入されました。

descriptor()も参照してください

QLowEnergyDescriptor QLowEnergyCharacteristic::descriptor(const QBluetoothUuid &uuid) const

uuid または無効なQLowEnergyDescriptor インスタンスの記述子を返す。

descriptors()も参照のこと

QList<QLowEnergyDescriptor> QLowEnergyCharacteristic::descriptors() const

この特性に属するディスクリプタのリストを返す。

descriptor()も参照してください

bool QLowEnergyCharacteristic::isValid() const

QLowEnergyCharacteristic オブジェクトが有効な場合はtrue を返し、そうでない場合はfalse を返す。

無効な特性オブジェクトは、どのサービスとも関連付けられていないか(デフォルトで構築されている)、または関連付けられたサービスが、例えば基礎となる Bluetooth Low Energy デバイスからの接続が切断されたために有効でなくなっている。オブジェクトが無効になると、それ以上有効になることはない。

注: QLowEnergyCharacteristic インスタンスが基礎となるデバイスからの切断によって無効になった場合、現在のインスタンスによってカプセル化された情報は、切断時のまま残ります。そのため、切断イベントの後でも情報を取り出すことができます。

QString QLowEnergyCharacteristic::name() const

特性の人間が読める名前を返す。

この名前は、標準化されていなければならない特性のuuid() に基づいている。特性タイプの完全なリストは、Bluetooth.org Characteristicsにあります。

uuid() が不明な場合、返される文字列は空である。

QBluetoothUuid::characteristicToString()も参照してください

QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristic::properties() const

特性のプロパティを返します。

プロパティは、特性のアクセス許可を定義します。

QBluetoothUuid QLowEnergyCharacteristic::uuid() const

isValid() がtrue を返す場合、その特性の UUID を返す。そうでない場合、null の UUID を返す。

QByteArray QLowEnergyCharacteristic::value() const

特性のキャッシュ値を返す。

特性のproperties() が新しい値の書き込みを許可している場合、値はQLowEnergyService::writeCharacteristic() を使用して更新できる。

キャッシュは、関連するサービスのdetail discoveryread/write 操作が成功したとき、または更新通知を受け取ったときに更新される。

特性がread permission を持たない場合、返されるQByteArray は常に空のままである。このような場合、QLowEnergyService::characteristicChanged() またはQLowEnergyService::characteristicWritten() だけが、この特性の値に関する情報を提供することができる。

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

other のコピーを作成し、このQLowEnergyCharacteristic オブジェクトに割り当てる。2つのコピーは、同じサービスとコントローラの詳細を共有し続けます。

メンバ変数のドキュメント

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDDisable

通知と表示の両方を無効にするために Client Characteristic Configuration Descriptor に書き込むビットパターン。

このドキュメントは Qt 6.2 で導入されました。

QLowEnergyCharacteristic::clientCharacteristicConfigurationも参照してください

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableIndication

Client Characteristic Configuration Descriptor に書き込んで表示を有効にするビットパターン。

このドキュメントは Qt 6.2 で導入されました。

QLowEnergyCharacteristic::clientCharacteristicConfigurationも参照してください

[since 6.2] const QByteArray QLowEnergyCharacteristic::CCCDEnableNotification

通知を有効にするために Client Characteristic Configuration Descriptor に書き込むビットパターン。

このドキュメントは Qt 6.2 で導入されました。

QLowEnergyCharacteristic::clientCharacteristicConfigurationも参照してください

関連する非会員

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

ab が等しくない場合はtrue を返し、そうでない場合はfalse を返します。

2 つの QLowEnergyCharcteristic インスタンスは、同じリモートの Bluetooth Low Energy デバイス上の同じ特性を参照している場合、または両方のインスタンスがデフォルトで構築されている場合、等しいと見なされます。

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

ab と等しい場合はtrue を返し、そうでない場合はfalse を返す。

2 つのQLowEnergyCharacteristic インスタンスは、同じリモートの Bluetooth Low Energy デバイス上の同じ特性を参照している場合、または両方のインスタンスがデフォルトで構築されている場合、等しいと見なされます。

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