2014/12/06

[ble]GATTが少しわかった気がする

hiro99ma blog: [ble]GATTがもやもやしてよくわからない

あれから2ヶ月が過ぎた。
少しは進化したんじゃないかと思う。


ATTとGATTの関係

GはGeneralのG、なのだ。
あまり深く考えていなかったが、Attribute(以下、ATT)の使い方を一般化しましょう、そしてそれを共通ルールとしてしまいましょう、という意味のGeneralだ。

ATTの構成は、こう(Core_V4.1より)。

image

こういう入れ物があるので、それに論理的な意味を付けるのがGATTの役割だ。
それがつまり、Characteristicだの、Serviceだのになる。

Characteristicが持つプロパティの、WriteだとかIndicateだとかも、GATTの話だ。
ReadOnlyとかWRとかは、ATTの話になる。

 

GATTとAdvertisingの関係

関係ない。
Advertisingは接続する前の段階の話で、GATTは出てこないのだ。
ここはL2CAPが主にやっているような気がする。

 

GATTとGAPの関係

GAPは、いろいろ。

よく見る、CentralやPeripheralみたいなRoleはGAPだ。
これはL2CAPのMasterやSlaveと関連している。

StandbyやAdvertising、Connectionのような接続もGAPだ。
実際にやるのはL2CAPみたいだが。

Bondingのこともあるかと思えば、Securityも入っている。もちろんGATTも。
なんかもう、「GAPとはこれだ」という定義ができなさそうだ。
あえてつけるなら、GAPはBluetoothプロトコルスタックだ、みたいな感じになるんだろうか。。。


まあ、あんまりここは突っ込まなくても、プロトコルスタックは実装されているものを使うから、任せておけばよいだろう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。