2014/09/30

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

BLEのGATT、General ATTribute profileがどうももやもやしてよく理解できていない。

Core_v4.1のvol 3 Part Gが、GATTの章である。

image

GAPがあって、その一部がGATTで、その中にアプリに特化したプロファイルがある、という依存関係らしい。
ということは、継承関係にあるというイメージでよいのかな?

image

GATTプロファイルのやりとりは、ATT(ATTribute Protocol)を使うとのこと。
ATT PDUというデータの単位があって、これでデバイス間の命令(command)、要求(request)、応答(response)、指示(indicate)、通知(notification)、確認(confirmation)を行う。

image

 

とまあ、理屈はわかったようなわからないような感じだ。
前回、I/O Serviceというサービスを作ったが、あれとはどう絡んでいるのだろうか?
GATTを継承してI/O Serviceができあがっているのか、GATTがI/O Serviceを含んでいるのか。

Core_v4.1のp.2177 "2.6.1 Overview"に出てくる図を見ると、Profileが1つで、その中に複数のServiceを持つように描いてある。
ということは、BLEのProfileはGATTだけなんだけど、中に入っているServiceが異なるから「派生したGATT」という表現になっているという考え方でよいのかな。

じゃあ、標準にあるProfileはどうなっているのだろうか。
シンプルそうなANP(Alert Notification Profile)を見てみよう。
https://developer.bluetooth.org/TechnologyOverview/Pages/ANP.aspx

これは、ANS(Alert Notification Service)を1つ持つGATT、ということか。
下の方にある説明図が、Alert Notification ClientとAlert Notification Serviceになってるけど、右側はAlert Notification Serverの間違いなのかな。

あと、"enables a client device to receive"とあるけど、サーバ側が通知してクライアント側が受信するの?
英語力不足で自信がないところが哀しいな。


そんなあなたに、こんな本が出るらしい。
『「ジョジョの奇妙な冒険」で英語を学ぶッ!』
http://www.oricon.co.jp/news/2040463/full/

0 件のコメント:

コメントを投稿

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