サンプルアクト
Sample Acts
アクトの動作を理解するため、いくつかのサンプルを用意しています。
サンプルは MWSDK をインストールしたフォルダにある
Act_samples
にあります。以下には、目的別のアクトを紹介します。
I2Cセンサーを接続し、スリープによる簡潔動作を行いながら無線パケットを送信する、無線センサーの実装例です。比較的簡潔、かつ、代表的な構造ですので、
act0
~act4
を確認後に参照することを推奨します。TWELITE で無線センサーを実装するための代表的な要素(シンプル中継ネット
<NWK_SIMPLE>
の利用・インタラクティブモード <STG_STD>
、I2Cセンサーの取り扱い Wire
、スリープによる間欠動作など)が含まれます。無線パケットを送信、または送受信するサンプルですが、各々少し違った視点で実装されています。
独自の受信側親機アプリケーションを実装するときに参照してください。
- Parent_MONOSTICKは、専ら受信のみを行い、シリアルポートへ受信結果を出力します。このサンプルの無線パケットで、親機向け(0x00)や子機ブロード キャスト(0xFE)とアドレス設定しているものは受信できます。またインタラクティブモード<STG_STD>をActに追加するための手続きが含まれます。
- Rcv_Univsl はユニバーサルパケットレシーバ (TWENETレイヤーツリーネットワーク, App_Twelite, Act, ... など) のサンプルコードです。また、コンテナやアルゴリズムにEASTLライブラリを使用しています。
インタラクティブモードを使用するアクトの解説には大まかな流れを記しています(ここでは上述の BRD_I2C_TEMPHUMID を引用します)。どのサンプルの解説も大きな差はありません。
- BRD_I2C_TEMPHUMIDは、I2Cセンサーデバイスの読み書きコマンドを実行し I2C センサーから得られた計測値を無線送信します。またインタラクティブ モード<STG_STD>をActに追加するための手続きが含まれます。
内蔵ペリフェラルや外部センサーデバイスからセンサー情報を得るサンプルです。
- BRD_APPTWELITEはディジタル入力、アナログ入力、ディジタル出力、アナログ出力を用いた双方向通信を行っています。またインタラクティブモード<STG_STD>をActに追加するための手続きが含まれます。
- BRD_I2C_TEMPHUMIDは、I2Cセンサーデバイスの読み書きコマンドを実行し I2C センサーから得られた計測値を無線送信します。またインタラクティブモード<STG_STD>をActに追加するための手続きが含まれます。
- PAL_AMB_behavior は、ビヘイビアを用いた例です。PAL_AMBでは温湿度センサーはライブラリ内部のコードが呼ばれますが、このサンプルでは温湿度センサーのアクセスのための独自の手続きも含まれます。
TWELITE PAL には標準的なPALアプリが書き込まれていますが、PALアプリを用いずアクトによる記述を行うことができます。MWXライブラリには、PALで使用するセンサーを動作させるための標準的な手続きが用意されています。
各種PAL基板用のサンプルです。PAL基板上のセンサー値を取得し、送信し、スリープします。
以下は応用例で、上記のアクトより少し複雑な記述になっています。
- PAL_AMB_behavior は、ビヘイビアを用いた例です。PAL_AMBでは温湿度センサーはライブラリ内部のコードが呼ばれますが、このサンプルでは温湿度センサーのアクセスのための独自の手続きも含まれます。
PAL_MOT 用のアクトが利用できます。小修整が必要な場合があります。
- [BRD_ARIA] は、TWELITE ARIA を動作させるためのアクトです。
- PAL_AMB 用のアクトを小修 整することで利用可能です。
最新版のコードや MWSDK バージョン間の修正履歴を確認する目的で Github にソース一式を置いています。以下のリンク先を参照してください。
アクトのサンプル中で以下の項目は共通の設定項目になり、以下で解説します。
const uint32_t APP_ID = 0x1234abcd;
const uint8_t CHANNEL = 13;
const char APP_FOURCHAR[] = "BAT1";
サンプルアクト共通として以下の設定をしています。
- アプリケーションID
0x1234abcd
- チャネル
13
アプリケーションIDとチャネルはともに他のネットワークと混在しないようにする仕組みです。
アプリケーションIDが異なる者同士は、チャネルが同じであっても混信することはありません。ただし、別のアプリケーションIDのシステムが頻繁に無線送信しているような場合はその無線送信が妨害となりますので影響は出ます。
チャネルは通信に使う周波数を決めます。TWELITE無線モジュールでは原則として16個のチャネルが利用でき、通常のシステムでは実施しないような極めて例外的な場合を除き、違うチャネルとは通信できません。
サンプルアクト共通の仕様として、パケットのペイロード(データ部)の先頭には4バイトの文字列(
APP_FOURCHAR[]
)を格納しています。種別の識別性には1バイトで十分ですが、解説のための記述です。こういったシステム特有の識別子やデータ構造を含めるのも混信対策の一つです。最終更新 1yr ago