hiro99ma blog: [ble]GATTがもやもやしてよくわからない
あれから2ヶ月が過ぎた。
少しは進化したんじゃないかと思う。
ATTとGATTの関係
GはGeneralのG、なのだ。
あまり深く考えていなかったが、Attribute(以下、ATT)の使い方を一般化しましょう、そしてそれを共通ルールとしてしまいましょう、という意味のGeneralだ。
ATTの構成は、こう(Core_V4.1より)。
こういう入れ物があるので、それに論理的な意味を付けるのが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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。