Bluetoothのツールとして気になっていたものに、Bluetooth Developer Studioがある。
なんなのかはわからないけど、アプリを作ったりデバッグするのによさそうなことが書いてある。
以前、ダウンロードしてみようとDeveloper Potalにサインインはしたのだが、どうもそのアカウントでは無理そうだった。
なんとなく、SIGのアカウントがいるようなんだけど、たぶん有料だろうし、企業じゃないと取れない気がする。
そのまま忘れていたのだが、nRF51 SDK v9.0.0のリリースノートに、実験的にBluetooth Developer Studioのテンプレートを付けてみた、とある。
もしかすると、Bluetooth SIGはもっと気楽なものなのか?と思ってサイトを見ると、It's free!と書いてあった。
間違ってたらあやまろう、という精神で、SIGへの入会はさておき、Beta Programへの参加をしてみることにした。
Bluetooth Developer Studioのページに行くと、右側に入力欄があった。
適当に打ち込むと、メールアドレス宛にダウンロード先が書かれているメールが来た。
インストーラは、こんな感じ。
なお、今回はBluetooth-Developer-Studio-Beta-2r1531.zipという名前のファイルだった。
インストールは、ウィザードを進めていくだけで終わる。
アプリを起動すると、こんな画面が出てきた。
よくわからんので、Nordicの説明通りにやっていこう。
と思ったのだが、いきなり詰まる。
プロファイルの作成をするように書かれているのだが、メニューにはプロジェクトの作成しかない。
とりあえず進めていこう。
OKすると、画面に「New Profile >」と出てきた。
それをクリックすると、プロファイルの作成画面になる。
プロジェクト名は「TestProject」にすればよかった、と思いつつも、次にいこう。
これでYesとすると、プロファイル名がさっき入力したものになった。
ここまでで、nRF51サイトの1番目だ。
次に、サービス。
右上にあるCUSTOM SERVICEを押すと、こんな画面が出てくる。
サービス名の変更はよいとして、NordicサイトではCharacteristicの作成になっているけど「+」ボタンがない。
わからんので、SAVEしてみよう。
ここで、「+」じゃなくて、その左にあるボタンを押すと、こういうのが出てきた。
(この長い名前はCharacteristic名で、「+」を押すと新しいCharacteristicのボタンが増える。)
左下のADD FIELDSを押すと、こういう感じ。
名前はvalueで、FORMATは_VARIABLE。
プロファイル作成の手順3まで終わると、こう。
手順4まで終わらせると、CharacteristicにRXとTXが加わる。
で、ここまでやってからコード生成をするようなのだが、プラグインの設定がいるようだ。
説明では「NORDIC SEMICONDUCTOR NRF51 PLUGIN」を選ぶように書かれているけど、出てこないので。
プラグインは、こちら。
https://developer.nordicsemi.com/nRF51_bluetooth_development_studio_plugin/
プロジェクトは、TestProfile.bds。
フォルダは管理用っぽい。
生成したソースは、ここに見えている4ファイルだけのようだ。
Bluetooth Developer Studioの役目はここまで。
あとは、生成されたソースを編集するなりして組み込むだけだ。
プラグインがnRF51で使えるようなコードを生成しているので、テンプレートに組み込んでやればいけそうな気がする。
以前、入出力するだけのサービスを作って、あとは必要に応じて書き換えればいいようにしていたのだが、Bluetooth Developer Studioがあれば手で書き換えるところがかなり少なくて済みそうだ。
サービスが直接ドライバなどをたたいたりしないように作りさえすれば、ほとんど修正無しでいいんじゃなかろうか。
BLEで何か作りたいときは、「サービス作りたい」とか「キャラクタリスティック作りたい」がメインじゃなくて、それよりも上側にある機能を作る方がメインだ。
だから、多少コードが大きくなったとしても自動生成してくれるのはありがたい。
nRF51822に組み込んで、動かしてみた。
nRF51 SDK v9って、nRF51422のMakefileしかないので、変更が面倒なのよね。。
追加したCharacteristicは2つだし、Propertiesも指示通りになっている。
CCCDはStudioで追加してないのだけど、自動的に有効になっているようだ。
が、だ。
UUIDが納得いってない。
0xB5E3と0x3453はひっついているし、サービスも0x3B36ということでついているのだが、Test Profileを作ったときのBASE UUID「4465d45c-f065-4d99-b2de-5ff339d3d9c2」がどこにもないのだ。
どこに消えたのだ?
前作ったソースを見ると、BASE UUIDはsd_ble_uuid_vs_add()を使って指定するようだ。
しかし、自動生成されたソースにはない。
そもそも、BASE UUIDの値自体が入っていないように見える。
ただ、BLE_UUID_BLE_ASSIGN()を使って16bitのUUIDは指定している。
これはプラグインがうまいこと生成できてないのか、あるいは何か私が考え違いしてるのか。。。
あとですな、Bluetooth Developer Studioのプラグインをダウンロードすると、nRF51 SDKも一式入っているのだが、これはBDS用にカスタマイズされているようなのだ。
確かに、includeが足りないとかでコンパイルエラーが発生して、私も手で修正していたのだ。
なので、BDSを使うなら、SDKごと使い分けるのがおすすめだと思う。
2015/09/23
UUIDが出力できたので、一式置きました。
GCCでビルドしたので、そのセットしか入れてないです。
https://sites.google.com/site/hiro99ma/ble/files/bds_test.zip?attredirects=0&d=1
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。