deki-lora は、LilyGO T-Deck Plus や現在の多くの LoRa モジュールに搭載されている無線チップ Semtech SX1262 を通して、LoRa パケットを送受信します。無線のピンを指定して SX1262LoRaComponent をブートシーンに置きます。ゲームコードは DekiLoRa::GetCurrent() でそれを取得して Send() を呼び出し、受信したデータを RSSI と SNR とともに Receive() から受け取ります。
無線は送信していないときは常に受信待ちになります。T-Deck のように、ディスプレイがすでに使っている SPI バスを共有できます。割り込み線(DIO1)を配線しておけば、伝えることがあるときだけそのバスにアクセスするため、報告することのない無線のせいで、ディスプレイへ送られる途中のフレームが待たされることはありません。
デューティサイクルはドキュメントに書かれているだけでなく、実際に強制されます。デフォルトは 1% で、これは 868 MHz に対するヨーロッパの規則です。各パケットの送信時間(time on air)から計算されます。上限を超えてしまう Send() は拒否され、MillisecondsUntilCanSend() でどれだけ待てばよいかがわかります。周波数、出力、拡散率、帯域幅、符号化率はすべてプロパティです。デバイスを使う地域の周波数帯に合わせて設定してください(たとえば南北アメリカでは 915 MHz)。
現時点では ESP-IDF のみ対応しています。ソースと README は GitHub にあります。
