PCが新しくなったので、ビルド環境の確認も合わせて動かしてみた。
ボードはnRF51822で、for EddystoneはKeilでやっとこさ32KB以内に収めたバージョンだ。
だから、動くとは限らない。。。
環境確認だったら、ちゃんと動くとわかっているものでやるのが筋なのだが、連休だからこれでいいのだ。
sd_ble_gap_adv_start()で、NRF_ERROR_INVALID_PARAMが返ってきているのがわかった。
eddystone_advertising_manager.cのeddystone_ble_advertising_start()だ。
パラメータをeddystone_ble_registr_adv_cb()で設定するようなのだが、それが呼ばれずに開始しようとしてるから、パラメータ不正になっている。
では、それがいつ呼ばれるのが普通かを調べねばなるまい。
名前の通りコールバック関数で、eddystone_registration_ui_init()に渡している。
UIとついているから、ボタン操作とかと絡んでくるのか・・・と思ったが、それ以前に私がROMサイズを減らすために中身をコメントアウトしてた。
あははははぁ。
ただ、ボタンがないのはどうしようもないので、無理やり呼んでやることにした。
そうすると、パラメータエラーは発生しなくなった。
しなくなったのだが、Advertisingをしてくれるわけでもない。
再起動するわけでもない。
何が起きてるんだ??
実行を停止すると、SEVの行でいつも止まる。
その前がWFEだから、イベント待ちで停止したままなのだろう。
無線が出ているときであれば、途中で停止させると次に実行すると異常になってしまうのだが、無線が出てないせいか止めても再開しても普通に動く。
普通に動くのだが、無線が出てないので正しくは動いていない。
うーん。。。
いつもエラーさえ解消すればAdvertisingくらいは出てくれるのだが、ちょっと困りましたね。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。