nRF51822にサービスを何か載せる練習をしている。
前回、Input/Outputサービスを作ったときは、ドキュメントをまねしただけだった。
あれから私も勉強したので、もうちょっとちゃんと作ろうと思う。
これが、今回作ろうとしているものだ。
FeliCa Plugから読込み要求(Read w/o Enc.)が来たら、Notifyで通知する。
NFC R/W側に対しては、GATT Serverが持っているデータを渡すだけにしておく。
それと同じデータを、GATT Clientが読むこともできる。
あれこれいきなりやると時間がかかりそうだから、少しずつ動くものを作っていこう。
内部の方はまだ置いておくとして、GATT ServerとClient間のインターフェースを決めなくてはならん。
TIのSensorTagを見ると、attribute table[pdf]というものを用意していた。
うちにあるBLEのサンプルが少ないんだけど、この表を作るのがよいだろうと思う。
(GeckoTagは、技術サイトにログインできない件が解決できないので、何を公開しているかわからない。。。
中の人、メール見てくれー)
Tableは、以下で構成されている。
- Handle
- Type
- Value
- Permission
TypeはDeclarationsにあった。
最初に「ここからService定義が始まる」というGATT Primary Service Declaration(0x2800)があり、そこから次のGATT Primary Serviceが現れるまではGATT Characteristic Declaration(0x2803)が続くという構造のようだ。
図にするとこんな感じか(Descriptorなどは省略)。
その辺を考え、nRF51822はこんなAttribute Tableがよいんじゃないか、と検討中。
Handleに相当する列がないのは、これはAPIによって決定するしくみになっていると思われるからだ。
UUIDさえ決めてしまえば、Handleは特に意識する必要は内容に思っている。
ひとまずこれで作ってみて、足りなかったら追加していこう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。