Lazurite 日本語リファレンス


SubGHz(920MHz)

概要

SubGHzはIEEE802.15.4eのプロトコルで920MHzの無線通信を行うための関数群です。

SubGHz(920MHz)に関する技術資料はこちらを参照してください。

関数

SUBGHZ_MSG SubGHz.init();

SubGHz無線の初期化を行う関数です。
リセット後に実行してください。

new void SubGHz.antSwitch(ant); MJ2001で使用するアンテナを指定するコマンドです。デフォルトは内蔵アンテナです。外部アンテナを使用するときはSubGHz.begin()関数の前に使用するアンテナを指定してください。

SUBGHZ_MSG SubGHz.begin(ch, panid, rate,txPower);

SubGHzの初期設定を行う関数です。使用するチャンネル、自機のPANID、ビットレート、出力パワーの設定を行います。

SUBGHZ_MSG SubGHz.close();

SubGHzの無線を終了する関数です。関数実行後は、RFやクロックを停止し、低消費電力の状態になります。再度使用するためにはbegin関数を実行してください。

SUBGHZ_MSG SubGHz.send(panid, dstAddr, *data, length, *callback);

送信先のPANID, ADDRESSを設定してデータを送信する関数です。

 

SUBGHZ_MSG SubGHz.send64be(*dstAddr, *data, length, *callback);

64bitアドレスモードでデータの送信を行います。dstAddrをビックエンディアンで指定します。

 

SUBGHZ_MSG SubGHz.send64le(*dstAddr, *data, length, *callback);

64bitアドレスモードでデータの送信を行います。dstAddrをリトルエンディアンで指定します。

SUBGHZ_MSG SubGHz.rxEnable(*callback);

受信を有効にする関数です。

SUBGHZ_MSG SubGHz.rxDisable();

受信を終了する関数です。

short SubGHz.readData(*data, max_size);

データの読み出しを行う関数です。戻り値が負の時はデータを受信していません。戻り値が正の時はデータを受信したことを示しており、*dataのポインタが示すメモリに、最大max_sizeの長さで受信データを格納します。

uint16_t SubGHz.getMyAddress(void);

16bitの自機アドレスを戻します。

 

SUBGHZ_MSG SubGHz.setMyAddress(myAddr);

自機アドレスを設定します。

 

void SubGHz.getMyAddr64(*myAddr);

64bitの自機アドレスを取得します。

void SubGHz.getStatus(*tx, *rx)

送信(tx)、受信(rx)のステータスを戻します。
この関数で受信時のrssiの値を得ることができます。

 

SUBGHZ_MSG SubGHz.setPromiscous(on)

無差別受信モードを設定します。本設定を行うとデータ受信時にACKも返しません。

 

SUBGHZ_MSG SubGHz.setAckReq(on)

ACKによる送達確認の有効/無効を設定します。

 

SUBGHZ_MSG SubGHz.setBroadcastEnb(on)

ブロードキャスト受信時の通知の有効/無効を切り替える関数です。

  SUBGHZ_MSG SubGHz.getSendMode(*param); 無線用パラメータを取得する関数です。
  SUBGHZ_MSG SubGHz.setSendMode(*param); 無線用パラメータを設定する関数です。
  SUBGHZ_MSG SubGHz.setKey(*key) AES128bitのKEYを設定する関数です
  void SubGHz.msgOut(msg); SUBGHZ_MSGのパラメータを入力すると、その内容に従ってメッセージをSerial出力する関数です。
  void SubGHz.decMac(*mac,*data,size); 受信したデータを各要素に分解する関数です。
  SUBGHZ_MSG変数 SubGHz関連の関数を実行したときの戻り値に関する説明です。

本関数群はLazurite専用の関数です。

アドレスについて

2017年5月12日版のソフトウエア以降のバージョンでは、ショートアドレスモードと、64bitアドレスモードの2つの方法で通信をすることが出来るようになりました。

ショートアドレスモード

ショートアドレスモードは、自機が属しているPANIDと、16bitの短縮アドレスで通信をします。

LazuriteのPANIDは、サンプルプログラムの場合 0xABCDを用いていますが、PANIDは0x0000~0xFFFDまで任意の値を設定することが出来ます。0xFFFFはブロードキャスト用のPANIDです。0xFFFFEは使用しないでください。

Lazuriteのショートアドレスは、初期状態では無線モジュールが保持する64bitアドレスの下位16bitが設定されていますが、setMyAddressで自機アドレスを変更することが出来るようになりました。

64bitアドレスモード

64bitアドレスモードは、無線モジュールに書き込まれている64bitのアドレスをすべて指定して通信を行うモードです。64bitアドレスのモードでは、PANIDは使用されません。

 

サンプルプログラムの解説

1)データ送信 (Welcome_SubGHz)

「Welcome to Lazurite Sub-GHz」というメッセージを送信するサンプルプログラムです。

 

2-1)データ受信 (Read_SubGHz)

受信したデータをシリアルでPCに文字列を表示するサンプルプログラムです。

2-2)データ受信(Print_SubGHz)

受信した文字列データをPC側に文字列表示するサンプルプログラムです。

 

3) データ受信(Sniffer_SubGHz)

Sniffer_SubGHzは使用しているチャンネルの全データをロギングしてPCに表示するサンプルプログラムです。ACKやLazurite Sub-GHzが非対応のデータもすべて表示することができます。Sniffer_SubGHzで受信を行ってもACKを返さないので注意してください。

(注意)
ロギング処理に時間をかけたり、頻繁にデータを受信すると動作が不安定になりますので注意して使用してください。