新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

ついでに LMIC

も~

arduino の LMIC のライブラリは初期値が EU868_F1 とかになっていて日本では当然使えない。これ、この部分の lorabase.h を変更している人がいて、ん?と思って調べてみる。 lmic.c のソースでは initDefaultChannels でこの初期値を変更可能なテーブルに入れている。で以後、必要なら LMIC_setupChannel という関数で変更可能なようだ。これでいけるんじゃね?で、無理やり、全部おなじ freq のにしてたりするけど、それでいいのかね?どうも GW を作るときはちゃんとそのバンド設計をしないといけないみたいね。この辺はきっと LoRaWAN の仕様書見ないといけなさそう(確信はないけど)。

そして、lmic の LMIC_setupChannel をみると自動的に enable になるみたいだ。ってことは disable もあるのか?あるね、LMIC_disableChannel 。これで必要のないものを Disable すればよいと。送信はどうなっているんだろうね?

LMIC はなんか、RICH な OS を期待しているみたいで、コールバックというかイベントベースのプログラムになっている。う~ん。こういう中初夏が入った C のソースって読みにくいんだよね。ポインターで分断されちゃうから。まぁ C++ もそうか。osjob というのをどっかでコールバックする仕組みがあるはずなのだが、、、、ん?コールバックは1っ個?あー job が queueing されるみたいね。

なにおっているのかわからなくなった。なんで、fork しないのかな、、、バージョンがわからなくなるぜ。

どうも作者の Matthijs さんはソース読まずになかのソースを改変する(API があるのにつかわない)のでコメントにそう書くようしてありますね。

あ、selectSubBand で使わないのは disable されているじゃないか。も~。だから、ちゃんと LMIC_setupChannel で GW の設定をここにかいて、selectSubBand でそのうちの1つをセレクトするという設計になっている。

なんかよくわからんが最終的に starttx を呼ぶみたい。パッと見た感じ、LBT の処理はしてなさそうだけど。

ただ、LORARegRssiWideband を読むと rssi よめるみたいね。これでチェック可能かな?