用語が、用語が・・・。
似たような感じの言葉がよく出てくるのだが、使い分けがわかっていない。
特に、「master/slave」「initiator/responder」「server/client」は、どれも同じような感じがしつつ、やっぱり違うんだろうけど、曖昧なままごまかしてきた。
そろそろ、はっきりさせたい。
Central/Peripheral
まずは、これか。
いわゆる「デバイス側」がPeripheralで、その持ち主が「Central」というイメージだ。
Core_V4.0のp.200に「BLEのGAPは4つのroleを定義する:Broadcaster, Observer, Peripheral, Central」とある。
つまり、GAP(Generic Access Profile)の機能ということだろう。
Master/Slave
Core_V4.0のp.1639-1640にGAPの4roleが対応する機能一覧がある。
そのLink Layer functionalityのConnection Stateに「Slave Role/Master Role」がある。
CentralはMaster Role、PeripheralはSlave Role。
つまり、LL(Link Layer)の機能ということだろう。
AdvertisingするのがSlaveで、それを受け入れるのがMaster、と思っている。
なので、PeripheralがAdvertisingし、Centralが受け入れる、ということになる。
Initiator/Responder
これはまだ私の調べごとには出てこないのだが、Interface誌にでていた。
「マスタ(イニシエータ)」「スレーブ(レスポンダ)」と書いてある。
p.2130に出てきている。
これは「Conditions」の説明なので、状態というか、そういうものなのか?
Physical Link Createコマンドを受けとるとInitiatorになり、Physical Link Acceptコマンドを受けとるとResponderになるのかな。
説明が「physical link initiator/responder」だから、PHYの機能ということだろう。
PHYが一番下の階層だ。
LL(Master/Slave)はその上。
GAP(Central/Peripheral)はもっと上。
検索したけど、あんまりそれっぽいことが書かれていない。
忘れてしまうか。。。
Server/Client
自分で書いておいて何だが、これは「Attribute Server/Client」のことかな?
ATT serverとATT clientみたいだ。
p.141には、ATT clientがコマンド、要求、確認をATT serverに対して送信する、と書いてある。
ATT serverはそれに対して、応答、通知、指示をATT clientに送信する。
Attribute Protocolの説明なので、これはGAPと同じ階層のようだ。
また、p.141にGATT(Generic ATTribute profile)の説明もあり、ATT serverの機能を実現しているのがGATTだ、とある(optionallyでATT clientも)。
p.1637にプロファイルスタックの図があったのだけど、GAPがベースのようになっていて、そこにGATTがいるのか。
で、この辺でPushとかPullとかの話が出てくると思ったのだが、Core_V4.0を「Push」で検索しても引っかからない。
なんだ?
それに、CharacteristicとAttributeの区別もついていない。
「Characteristic」という属性がついたAttributeがCharacteristicってことかいな?
Characteristicのアクセスは、ReadとかWriteとかNotifyとか、そんなのだよなぁ。。。
うぅぅ。。。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。