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がいるよ、ということで、ダウンロードを要求された。
これは自動的にダイアログが出てダウンロードまで進めてくれたので、指示に従った。
そして、正常にビルドできたようだ。
よし、実行だ!
えっ・・・。
実物が動いてないとダメなの・・・。
私の期待としては、パケットを入力する画面が出てきて、それに16進数でぺこぺこ入力して「チェック!」みたいなボタンを押すと、そのパケットがEddystoneとして正しいかどうかチェックするツールだったのだが・・・。
ええい、ならばAdvertisingするソフトを作るだけよ!
幸い、nRF52832のサンプルでBeaconを出すものがある。
それを改造しよう。
出してみたものの、アプリに反応がない・・・。
あれ?
2番目のAD Typeが0x03じゃなくて、0x14になってる??
Eddystoneの説明では「Service Soliciation」と「Service Data」と書いてあったけど、表の方は「Service UUID」と「Service Data」になってるな。
nRF52 SDK(nRF51もだけど)では、Advertisingするデータはバイナリで詰めるのではなく、構造体のメンバを埋めるようになっている。
なので、メンバのuuids_soliciatedに設定していたのだ。
そうじゃなくて、uuids_completeの方なのか・・・?
出た!!
なんだよー、本文の方が間違ってるのかよー。
まあ、私の解釈が間違っている可能性もあるので、ここで責めてブーメランのように戻ってくるのは嫌だから、「soliciationじゃなくてcompleteみたいな気がする」にとどめておこう。
改造したのが、こちらのソースファイル。
Googleドライブだけど、見えなかったらごめんなさい。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。