ここでは 実際の通信の設定と送受信の方法について、説明します。
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で作った配列は書き換えが可能ですので、通信構造を作った後に中身だけ数値が変わるようなとき便利に使えます。