人「最近、家でなにを開発してるんですか?」(私が家でごにょごにょやってることを知ってる人)
私「び、Bluetooth関係とか」
といってしまったので、もうちょっとちゃんと開発しよう。
ちまちまと進めているのは、以前作ったInputとOutputのサービスを持つアプリについての読解。
サービスの実装についてはなんとなくわかったんだけど、アプリについてはほとんどサンプルを使い回しているだけなので、何をやっているか把握できていないのだ。
BLEとは直接関係ないのだけど、BLEでなにかPeripheralを作ろうと考えたとき、BLE自身は多くても3~4割くらいで、残りはアプリの制御になると思っている(もちろん、BLEのプロトコルスタックはできあがっている上でだ)。
サンプルでは、BLEを使うときにble_stack_init()という関数を作り、そこに初期化をまとめているようだ。
以前はまった内蔵クロックの初期化とか、BLEスタックを死傷するためにsd_ble_enable()というAPIを呼び出したりしている。
BLEイベントのディスパッチをするsoftdevice_ble_evt_handler_set()を呼び出したりもする。
そういうのはわかるのだが、softdevice_sys_evt_handler_set()もここで呼び出している。
このAPIはBLEイベントのディスパッチャー登録と同じように、システムイベントのディスパッチャー登録をするAPIのようだ。
疑問は2つ。
- システムイベントって、なに?
- なんでBLEスタック初期化の中で呼び出しているの?
プレフィクスにsoftdevice_とついているので、これはSoftDeviceを使う機能全般のものじゃなかろうか。
じゃあ、BLEスタックとは切り離されてもいいんじゃないの?
なんでここで呼ぶの??
では、softdevice_sys_evt_handler_set()についてしらべようじゃないか。
と、書いているところにNordicのMLが来た。
SoftDevice S110-SD-v7が、7.1.0にバージョンアップ!
しかも、これ以前の7.x.x系はdeprecatedになるんだと。
LDCD(てきとう)もサポートすると書いてあるし。。。
そっちを先にやりましょうかね。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。