アクトの動作を理解するため、いくつかのサンプルを用意しています。
サンプルは MWSDK をインストールしたフォルダにある Act_samples にあります。
以下には、目的別のアクトを紹介します。
I2Cセンサーを接続し、スリープによる簡潔動作を行いながら無線パケットを送信する、無線センサーの実装例です。比較的簡潔、かつ、代表的な構造ですので、act0~act4を確認後に参照することを推奨します。
TWELITE で無線センサーを実装するための代表的な要素(シンプル中継ネット <NWK_SIMPLE> の利用・インタラクティブモード <STG_STD>、I2Cセンサーの取り扱い Wire、スリープによる間欠動作など)が含まれます。
無線パケットを送信、または送受信するサンプルですが、各々少し違った視点で実装されています。
注:このサンプルに含まれるアクトの無線パケットの受信には App_Wings を利用することもできます。
独自の受信側親機アプリケーションを実装するときに参照してください。
インタラクティブモードを使用するアクトの解説には大まかな流れを記しています(ここでは上述の BRD_I2C_TEMPHUMID を引用します)。どのサンプルの解説も大きな差はありません。
内蔵ペリフェラルや外部センサーデバイスからセンサー情報を得るサンプルです。
TWELITE PAL には標準的なPALアプリが書き込まれていますが、PALアプリを用いずアクトによる記述を行うことができます。MWXライブラリには、PALで使用するセンサーを動作させるための標準的な手続きが用意されています。
各種PAL基板用のサンプルです。PAL基板上のセンサー値を取得し、送信し、スリープします。
以下は応用例で、上記のアクトより少し複雑な記述になっています。 * PAL_AMB_usenap は、数十msかかるセンサーの動作時間にTWELITEマイコンを短くスリープさせ、より省電力を目指すサンプルです。 * PAL_AMB_behavior は、ビヘイビアを用いた例です。PAL_AMBでは温湿度センサーはライブラリ内部のコードが呼ばれますが、このサンプルでは温湿度センサーのアクセスのための独自の手続きも含まれます。 * PAL_MOT_fifo は、加速度センサーのFIFOおよびFIFOの割り込みを用いて、サンプルを中断することなく、連続的に取得し無線送信するためのサンプルです。
PAL_MOT 用のアクトが利用できます。小修整が必要な場合があります。
Unitから始まる名前のActは機能やAPIの紹介を目的としています。
最新版のコードや MWSDK バージョン間の修正履歴を確認する目的で Github にソース一式を置いています。以下のリンク先を参照してください。
アクトのサンプル中で以下の項目は共通の設定項目になり、以下で解説します。
サンプルアクト共通として以下の設定をしています。
0x1234abcd13アプリケーションIDとチャネルはともに他のネットワークと混在しないようにする仕組みです。
アプリケーションIDが異なる者同士は、チャネルが同じであっても混信することはありません。ただし、別のアプリケーションIDのシステムが頻繁に無線送信しているような場合はその無線送信が妨害となりますので影響は出ます。
チャネルは通信に使う周波数を決めます。TWELITE無線モジュールでは原則として16個のチャネルが利用でき、通常のシステムでは実施しないような極めて例外的な場合を除き、違うチャネルとは通信できません。
サンプルアクト共通の仕様として、パケットのペイロード(データ部)の先頭には4バイトの文字列(APP_FOURCHAR[])を格納しています。種別の識別性には1バイトで十分ですが、解説のための記述です。こういったシステム特有の識別子やデータ構造を含めるのも混信対策の一つです。