とりちらかったもろもろの言葉たち

ちょっと大きめのつぶやきにすぎない戯言をとりあえず書いてみました

Bluetooth Developer Studioの利用例

Bluetooth Developer Studio(BDS)でAndroidのプログラムを作ったら超絶簡単だったので記録しておく。

最初にAndroid Clientのプラグインをインストールする。といっても、BDSの「Plugin」フォルダーに、Pluginのサンプル(ここにあったヤツを使ったけど、そもそもBDSのExamplesに入っているヤツでもよさそう)をフォルダーごと放り込んであげればいい。

まずAndroidのプロジェクトを先に作っておこう(後でもいいけど)。ポイントはここでPackage名につける名前。ドメイン名識別という例のアレだが、これをBDSと同じにしておくと何も考えなくてよくて便利。

Step1

ということでBDSで新規プロジェクトを作成する。

Step2

で、先ほども言ったけどNAMESPACEに同じ名前を入れるのがポイント。今回はAndroidアプリ側なので、UUIDとかはきっとつなぐ相手が存在するはず。その相手のUUIDとかを入れておく。本当はBASE UUIDはあんまり意味ないのかもしれないが、おまじないだと思ってやった。Step3

OKをクリックすると「New Profile」というしごくシンプルな画面が出てくる。何もないとつながりようがないので、「CUSTOM SERVICE」をクリックする。Step4

順番が逆だったかもしれない。ちょっと記憶をたどりながらなのであやふやだけど、いろいろと「へぇここクリックするんだ」みたいなところがある。例えばこの画面で「New Profile」をクリックすると、プロファイルを編集できる。上の画面で「New Profile」をクリックしてもきっといいはず。

Step5

で、プロファイルの編集画面が出てくる。BASE UUIDはさっきのものが入っているはず。プロファイル名を編集して、BASE UUIDとNAMESPACEを確認したら「SAVE」をクリックする。Step6

で、次にサービスを定義する。「NEW PROFILE NEW SERVICE」をクリックすると、サービスの編集画面になる。今回はLightBlue Beanにつなぐために作ったので、サービス名は敬意を表して「LightBlue Service」としたが、名前は何でもいいだろう。またここで、該当するBLEデバイスのサービスのUUIDを入力すること。このUUIDはBASE UUIDから勝手に生成してくれるのだが、当然正しいとは限らない(というか、クライアント作成用としては違っている可能性が高い)ので、よく確認すること。なまじ末尾とか合っているので、気づかず進めたこと2回くらいあった。Step7

サービスの定義が済んだら、今度は個別のCharactersiticを定義する。まずは「+」ボタンをクリック。Step8

名前とかもろもろ編集。まあ最初に名前をScratch1とか(LightBlue Beanの呼び名)、役割とかで適当に。またUUIDも、サーバーによって定義されているだろうから正しく入力する。Step9a

同じ画面の下の方に移ると、その属性が定義できる。ここで「READ」とか「WRITE」とかはクライアントから見た時の役割。つまり、AndroidからそのCharactersiticに書き込みたいときは「WRITE」を「MANDATORY」にする。読みだしたいときは「READ」を「MANDATORY」に。OPTIONALにするとコードを生成してくれないからEXCLUDEから変える必要もないのだけど、まあそこは気は心というか。で、値の読み書き設定を加えると、下の「ADD FIELDS」というのが出てくるので、こいつをクリックする。Step9b

フィールドを追加したいので、「ADD」をクリックする。Step10

Characteristicを通じてやり取りするデータの型などを入れる。LightBlue Beanだと基本8ビットの配列で定義していたから、そうしておいた。ただこれ、コードで型チェックを生成してくれたりするので、もっと詳細なプロトコルを定めている場合はそれに従ってちゃんと記述するとよいように思う。VALUEも1個じゃないので、複数個を並べてもよさそうだ。まあ今回はこれでやったので。Step11

で、正しくCharacteristicを定義したら、TOOLメニューの「GENERATE」でコードを生成する。最初はServerだけど、Clientのコードも生成できる。Step12

Clientを選んで「ANDROID CLIENT PLUGIN」を選択して、GENERATEをクリックすればコードを生成してくれる。Step13

最後に、生成したコードの中にバッチファイル「copy_to_android_studio.bat」があるので、こいつを実行してアタマで作成したAndroid Studioのプロジェクトに放り込んであげれば完了。とりあえず一通り、Characteristicを通じてBLEデバイスと値をやり取りするアプリが作成できる。

そういえば、そもそも日本語環境だとBluetooth.comのサイトがまともに表示されないという問題があるんだった。ボクは英語版のブラウザー環境を一つ用意しているので、そっちを使ってアクセスしたらあっさり問題が解消したのだった。どうでもいいが、早く直せよ。

コメントを残す