2016/04/30

[nrf]nRF5 SDK for Eddystoneは動くのか? (4)

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 件のコメント:

コメントを投稿

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