ここでは、実際の通信の設定と送受信の方法について説明します。
import lpwa #lpwaの通信モジュールです。
import rfn #lpwaの通信モジュールを使い安くする為のファイルです。
ファイルシステムの中に"rfn.py"として準備されている必要があります。
各通信モードOPENを行います。
>>> lpwa.reg(rfn.Open,rfn.SF7) #回線をLoRa変調SF12でOPENします。 データの送信について >>> spkt="123456" #送信データを変数に作成します。 >>> lpwa.reg(rfn.Post,spkt) #ポストレジスタに送信したいデータを置くと 送信されます。 データの受信について >>> rpkt=lpwa.reg(rfn.Get,rfn.Post) #ポストレジスタから読み込むと受信したデータを受け取れます。 >>>rpkt -3 #受信できなかった時、エラーコードを返しますが、この時に受信モードに切り替わります。 >>> rpkt=lpwa.reg(rfn.Get,rfn.Post) >>>rpkt (b'Telepower Tst', b'\x00\x14\x8eC\x00\x00\x00\x9a', -78, 7) #受信ができると受信情報がタプルとなって返ります。 >>>rpkt[0] #タプルの一つ目は受信データです。 b'Telepower Tst' # bytearray形式で取得できます。 >>>rpkt[1] #タプルの二つ目は送信元アドレスです。 b'\x00\x14\x8eC\x00\x00\x00\x9a' >>>rpkt[3] #タプルの三つ目は受信時のRSSI値です。 -78 >>>rpkt[3] #タプルの四つ目は受信時の信号ノイズ比(SNR)です。 7
PYTHONではASCII文字列を扱うには便利ですが、バイナリバイト配列を作るには不便です。
そのような場合には
bytearray()
関数が便利です。
bytearrayで作った配列は書き換えが可能ですので、通信構造を作った後に中身だけ数値が変わるような場合、便利に使えます。