2015/07/18

[ble]AndroidのEddystoneValicatorを動かしてみる

 

https://github.com/google/eddystone/tree/master/tools/eddystone-validator

AndroidStudioでビルドさせようとすると「Protocol family unavailable」と出てきた。。。
http://stackoverflow.com/questions/25603439/solved-gradle-project-refresh-failed-protocol-family-unavailable
こちらを見ると、.gradleフォルダを削除して、ファイアウォールの設定を切った、とある。
確かに、プロジェクトを開いたときか何かに、ファイアウォールが接続していいかどうか聞きに来たな。

ファイアウォールを切ると、進んだ。
が、Build Toolの22.0.1がいるよ、ということで、ダウンロードを要求された。
これは自動的にダイアログが出てダウンロードまで進めてくれたので、指示に従った。
そして、正常にビルドできたようだ。

よし、実行だ!

image

えっ・・・。
実物が動いてないとダメなの・・・。
私の期待としては、パケットを入力する画面が出てきて、それに16進数でぺこぺこ入力して「チェック!」みたいなボタンを押すと、そのパケットがEddystoneとして正しいかどうかチェックするツールだったのだが・・・。


ええい、ならばAdvertisingするソフトを作るだけよ!

幸い、nRF52832のサンプルでBeaconを出すものがある。
それを改造しよう。

image

出してみたものの、アプリに反応がない・・・。

あれ?
2番目のAD Typeが0x03じゃなくて、0x14になってる??
Eddystoneの説明では「Service Soliciation」と「Service Data」と書いてあったけど、表の方は「Service UUID」と「Service Data」になってるな。
nRF52 SDK(nRF51もだけど)では、Advertisingするデータはバイナリで詰めるのではなく、構造体のメンバを埋めるようになっている。
なので、メンバのuuids_soliciatedに設定していたのだ。
そうじゃなくて、uuids_completeの方なのか・・・?

image

image

出た!!

なんだよー、本文の方が間違ってるのかよー。

まあ、私の解釈が間違っている可能性もあるので、ここで責めてブーメランのように戻ってくるのは嫌だから、「soliciationじゃなくてcompleteみたいな気がする」にとどめておこう。

 

改造したのが、こちらのソースファイル
Googleドライブだけど、見えなかったらごめんなさい。

0 件のコメント:

コメントを投稿

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

注: コメントを投稿できるのは、このブログのメンバーだけです。