QLowEnergyCharacteristic Class
QLowEnergyCharacteristic クラスは、Bluetooth Low Energy のサービス特性に関する情報を格納します。詳細...
| ヘッダー: | #include <QLowEnergyCharacteristic> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Bluetooth) target_link_libraries(mytarget PRIVATE Qt6::Bluetooth) |
| 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::Unknown | 0x00 | タイプが不明です。 |
QLowEnergyCharacteristic::Broadcasting | 0x01 | 汎用属性 (GATT) の特性値のブロードキャストを許可します。 |
QLowEnergyCharacteristic::Read | 0x02 | 特性値の読み取りを許可します。 |
QLowEnergyCharacteristic::WriteNoResponse | 0x04 | 応答を伴わない特性値の書き込みを許可する。 |
QLowEnergyCharacteristic::Write | 0x08 | 特性値の書き込みを許可する。 |
QLowEnergyCharacteristic::Notify | 0x10 | 特性値の通知を許可します。特性値の表示を許可します。 |
QLowEnergyCharacteristic::Indicate | 0x20 | 特性値の表示を許可します。 |
QLowEnergyCharacteristic::WriteSigned | 0x40 | GATT 特性値の符号付き書き込みを許可します。 |
QLowEnergyCharacteristic::ExtendedProperty | 0x80 | 追加の特性プロパティは、特性の拡張プロパティ記述子に定義されています。 |
基盤となる 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::CCCDDisable 、QLowEnergyCharacteristic::CCCDEnableNotification 、およびQLowEnergyCharacteristic::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) を呼び出すことと同等です。
注: 同じ特性に対して通知とインディケーションの両方を使用することは推奨されません 。これは、特性を設定するサーバー側だけでなく、それらを有効にするクライアント側にも当てはまります。 Bluetoothスタックの動作はプラットフォームごとに異なり、クロスプラットフォームでの動作に一貫性がない可能性があります。例えば、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 discovery 中、read()またはwrite の操作が成功した場合、あるいは更新通知を受信した際に更新されます。
特性にread permission がない場合、返されるQByteArray は常に空のままとなります。そのような場合、この特性の値に関する情報は、QLowEnergyService::characteristicChanged()またはQLowEnergyService::characteristicWritten()によってのみ取得可能です。
QLowEnergyCharacteristic &QLowEnergyCharacteristic::operator=(const QLowEnergyCharacteristic &other)
other のコピーを作成し、それをこのQLowEnergyCharacteristic オブジェクトに割り当てます。2つのコピーは、引き続き同じサービスおよびコントローラーの詳細情報を共有します。
メンバ変数のドキュメント
[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)
a とb が等しくない場合は `true ` を返し、それ以外の場合は `false` を返します。
2つのQLowEnergyCharacteristicインスタンスは、同じリモートBluetooth Low Energyデバイス上の同じ特性を参照している場合、または両方のインスタンスがデフォルトコンストラクタで生成された場合、等しいとみなされます。
bool operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
a がb と等しい場合はtrue を返し、そうでない場合はfalse を返します。
2つのQLowEnergyCharacteristic インスタンスは、同じリモートBluetooth Low Energyデバイス上の同じ特性への参照であるか、あるいは両方のインスタンスがデフォルトコンストラクタで生成された場合に、等しいとみなされます。
© 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.