12,796
回編集
340行目: | 340行目: | ||
* サービス | * サービス | ||
*: デバイスの機能をグループ化 (例: 心拍計測、温度センサ等) | *: デバイスの機能をグループ化 (例: 心拍計測、温度センサ等) | ||
*: キャラクタリスティックは各サービスに1つ以上必要である。 | |||
* キャラクタリスティック | * キャラクタリスティック | ||
*: 実際のデータ値や操作 (例: 心拍値、温度値、設定値等) | *: 実際のデータ値や操作 (例: 心拍値、温度値、設定値等) | ||
*: キャラクタリスティックは、各サービスに1つ以上必要である。 | |||
* ディスクリプタ | * ディスクリプタ | ||
*: キャラクタリスティックの追加情報 (単位や説明等) | *: キャラクタリスティックの追加情報 (単位や説明等) | ||
*: ディスクリプタは必須ではなく、オプショナル (0個以上) である。 | |||
<br> | |||
# GATT階層構造 | |||
Profile | |||
└── Service (1..n) # Primary / Secondaryの2種類のサービスタイプ | |||
└── Characteristic (1..n) | |||
└── Descriptor (0..n) | |||
<br> | <br> | ||
サービスディスカバリでは、これらの階層構造を探索して、利用可能な機能を特定する。<br> | サービスディスカバリでは、これらの階層構造を探索して、利用可能な機能を特定する。<br> | ||
標準的なサービスには決められたUUIDが割り当てられている。(例: 心拍サービス、電池残量サービス等)<br> | 標準的なサービスには決められたUUIDが割り当てられている。(例: 心拍サービス、電池残量サービス等)<br> | ||
UUIDは16-bit (標準) または 128-bit (カスタム) である。<br> | |||
<br> | |||
# BLEサービスディスカバリの手順 | |||
1. GAP (Generic Access Profile) によるデバイススキャン | |||
2. デバイスへの接続 | |||
3. GATTサービスの列挙 | |||
4. 各サービス内のキャラクタリスティック探索 | |||
5. 必要に応じてディスクリプタ探索 | |||
<br> | <br> | ||
BLEでは、<code>QLowEnergyService</code>クラスでより複雑なサービス階層を管理する。<br> | BLEでは、<code>QLowEnergyService</code>クラスでより複雑なサービス階層を管理する。<br> |