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::Unknown | 0x00 | タイプは不明です。 |
QLowEnergyCharacteristic::Broadcasting | 0x01 | GATT(Generic Attributes)特性値のブロードキャストを許可する。 |
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
Client Characteristic Configuration Descriptor を返すか、 Client Characteristic Configuration Descriptor が存在しない場合は無効な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)
を呼び出すことと同じです。
注意 : 同じ特性に対して、通知と表示の両方を使用することは推奨されません。これは、特性を設定するサーバー側と、特性を有効にするクライアント側の両方に当てはまります。ブルートゥーススタックの動作はプラットフォームによって異なり、クロスプラットフォームの動作は一貫していない可能性が高いです。例として、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
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)
a とb が等しくない場合はtrue
を返し、そうでない場合はfalse
を返します。
2 つの QLowEnergyCharcteristic インスタンスは、同じリモートの Bluetooth Low Energy デバイス上の同じ特性を参照している場合、または両方のインスタンスがデフォルトで構築されている場合、等しいと見なされます。
bool operator==(const QLowEnergyCharacteristic &a, const QLowEnergyCharacteristic &b)
a がb と等しい場合はtrue
を返し、そうでない場合はfalse
を返す。
2 つのQLowEnergyCharacteristic インスタンスは、同じリモートの Bluetooth Low Energy デバイス上の同じ特性を参照しているか、両方のインスタンスがデフォルトで構築されている場合、等しいと見なされます。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。