node.jsモジュールrfm9x loraワイヤレスモジュールとのインターフェース。 Adafruit Radio Bonnetsで使用することを目的としています。
このコードはRaspberry PIでのみテストされていますが、技術的にはOnoffおよびSPI-Deviceによってサポートされている他のボードでも動作する可能性があります。
データの受信と送信の簡単な例についてはexample/pingpong.js参照してください。
モジュールは、単一のクラスRFM9xをエクスポートします。
RFM9xLORAモジュールを表すクラス。コンストラクターには引数は必要ありません。
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - 出力SPIデバッグ情報debugこのプロパティをtrueに設定して、すべてのSPI通信をコンソールに印刷します。
注: console.log()呼び出しはほとんどの状況で同期しているため、タイミングに影響を与える可能性があります。たとえば、他のノードからの応答を見逃すのに十分なほど遅くなるように、送信から受信モードへの切り替えを引き起こす可能性があります。
init(options) - モジュールとLORAの設定を初期化しますstartReceive() - loraモジュールを受信モードにし、 receiveイベントを有効にしますstopReceive() - ロラモジュールをスタンバイモードにして、パケットの受信を停止しますsend(payload) - lora経由でパケットを送信しますgetVersion() - モジュールからチップバージョン番号を取得しますinit(options)options - オプションオブジェクト(以下を参照)。すべてのプロパティはオプションであり、省略するとデフォルト値が使用されます。モジュールとLORAの設定を初期化します。いずれかの無線関数を使用する前に、呼び出す必要があります。
価値なしに解決する約束を返します。
次のオプションがサポートされています。
frequencyMhz MHzの基本周波数、デフォルト: 915preambleLength -LORAプリアンブル長のバイト、デフォルト: 8bandwidthHz -HzのLora帯域幅、デフォルト: 500000codingRate -LORAコーディングレート、有効な値は5 (4/5)から8 (4/8)、デフォルト: 5spreadingFactor -lora spreading係数、有効な値12 6 、デフォルト: 7enableCrcChecking着信パケットでCRCチェックを有効にするかどうか、デフォルト: falsetxPowerDb -DBの送信機電源、有効な値は5 23 (現在は高出力モードのみがサポートされています)、デフォルト: 23enableAgc自動ゲイン制御を有効にするかどうか、デフォルト: falseresetPin -rfm9xリセットラインが接続されているgpioピンの数、デフォルト: 25dio0Pin -rfm9x dio0ラインが接続されているgpioピンの数、デフォルト: 22dio1Pin現在使用されていません。 RFM9X DIO1ラインが接続されているGPIOピンの数、デフォルト: 23dio2Pin現在使用されていません。 RFM9X DIO2ラインが接続されているGPIOピンの数、デフォルト: 24spiSpeedHz -HzでのSPI通信の速度、デフォルト: 100000txTimeoutMsパケット送信が終了するのを待つためのミリ秒単位での最大時間、デフォルト: 2000 startReceive() LORAモジュールを受信モードに配置し、 receiveイベントを有効にします。
価値なしに解決する約束を返します。
stopReceive()LORAモジュールをスタンバイモードにして、パケットの受信を停止します。
価値なしに解決する約束を返します。
send(payload)payload - 最大255バイトのBufferLora経由でパケットを送信します。
トランスミッションが終了した後、値なしで解決する約束を返します。
注:パケットを送信した後、モジュールは自動的にスタンバイモードに切り替わります。送信後にパケットを受信し続ける場合は、送信が完了したらstartReceive()に電話する必要があります。
getVersion()モジュールからチップバージョン番号を取得します。
バージョン番号(1バイト整数)で解決する約束を返します。
receive(packet) - ロラパケットが受信されたときに放出されますreceiveError() - 無効なLoraパケットが受信されたときに放出されますreceive(packet)Loraパケットを受信したときに放出されるイベント。
packetは、次のプロパティを含むオブジェクトです。
payload - パケットコンテンツを含むBufferrssiDb -dbのパケットのrssisnrDb -DBのパケットのSNR receiveError()ロラパケットを受信したときに放出されるが、エラーを受信したため廃棄されたイベント(例えば、CRCチェックが失敗しました)。