UECSノード開発用ミドルウェア UARDECS 使用方法 その2

ArduinoIDEの立ち上げとスケッチ作成

 UARDECSフォルダをコピー後,arduino.exeをダブルクリックして立ち上げる.立ち上げ後<ツール>タブ内の<マイコンボード>タブで使用する機種を選択する.


図−2a 利用する機種を選択する.

 Arduinoを開発用PCにUSB接続しドライバの認識が完了したら,<ツール>タブ内の<シリアルポート>タブでシリアルポート番号を設定する.この番号は接続する機種やPCによって異なる(通常は一番下).正常に認識されなかったりプログラムの書き込みに失敗する場合はArduinoを別のUSBポートに挿し直して試してみること.

注意:書き込み中にArduinoをUSBから抜くとブートローダーが破壊されるおそれがあるので反応がなくなった場合,タイムアウトまでしばらく待つことをおすすめします.


図−2b シリアルポートを選択する.

(1)下記のライブラリーをスケッチにインクルードする必要がある.
#include <SPI.h>
#include <Ethernet.h>
#include <avr/pgmspace.h>
#include <avr/wdt.h>
#include <CCM.h>
#include <EEPROM.h>
#include <EthernetManager.h>

(2)下記の変数はユーザが初期化する必要がある.

変数の型 変数名 説明
const byte U_InitPin ネットワークアドレスの初期化ジャンパーピンの番号
このジャンパーがセットされた時,IPアドレスが192.168.1.7,サブネットマスク255.255.255.0に強制的にセットされる.
不揮発性メモリーに設定が書き込まれていない時,IPアドレスを忘れた時に使用する.
ここに設定されたピンは入力モードになり自動的にプルアップされる.
IPアドレスの変更を反映するにはArduinoの再起動が必要である.
const byte U_InitPin_Sense ネットワークアドレスの初期化ジャンパーピンの判定条件(HIGHまたはLOW).
U_InitPinで設定したピンの状態がここに合致するとき,IPアドレスの強制セットが行われる.
補足:旧バージョンとの互換性について
Ver0.3以前で作成したスケッチはこの変数が定義されていないのでそのままではコンパイルできません。
エラーが出る場合,以下の一文をソースコードのU_InitPinの定義の後に追加して下さい。
const byte U_InitPin_Sense=HIGH;
const char PROGMEM U_name[ ] 機器の名称(例えば”Temp controller”).半角英数字で20文字以内.UECSの通信文でも利用する.
const char PROGMEM U_vender[ ] 機器の開発者(例えば”XXX co.”).半角英数字で20文字以内.UECSの通信文でも利用する.
const char PROGMEM U_uecsid[ ] UECS研究会が発行するID番号で16進数の8桁の数字.半角英数字で20文字以内.UECSの通信文でも利用する.
仮には”00000000”で設定してください(ただし自己責任でお願いします).
const char PROGMEM U_footnote[ ] ノードのhttpサーバにアクセスしたときのトップページの脚注に表示する文字列.
const int U_footnoteLetterNumber 上記U_footnoteの文字の数(半角で数える).
char 型の配列(数は20で固定) U_nodename ノードのhttpサーバが提供するノードの名称(例えばROOM1_Controller).半角英数字で19文字以内.
UECSの通信文では使用しない.ノードのhttpサーバーを利用して値は変更可能で,ノードを起動するとノードに
搭載されている不揮発性メモリーから文字列がこの変数に転送される.
const int U_MAX_CCM ノードの送受信マネージャーに登録するCCM(UECSの通信文の数).
const int U_HtmlLine ノードのhttpサーバで提供される,ユーザーが任意設定できるWEBページの項目数.
UECSCCM構造体の配列 U_ccmList[U_MAX_CCM] 宣言のみで良い.この配列は他のノードから受信した値や,他のノードの送信する値を格納しており.送受信マネージャ
送受信のタイミングは管理される.
UECSOriginalAttribute構造体 U_orgAttribute 宣言のみで良いが,後ほどmacアドレスのみ設定をおこなう.

(3)下記の関数内にユーザーがコードを記述する必要がある.

関数名 詳細
void UserInit() コンピュータボードの初期化後,ネットワーク設定を読み込んだ後,自動的に呼び出される.
この関数内では
1)macアドレスの設定
2)CCMのユーザー登録

が必須項目となる.
void setSendP1Page() p1.htmlページではノードに対して各種の値を設定できる.各種の値を設定し不揮発性メモリに
値を保存後,ページの再描画を行う前にこの関数が呼び出される.
void UserEvery1min() この関数は1秒毎に呼び出される.送受信マネージャーは1秒毎に受信した通信文の鮮度管理(最後に受信してから
一定の時間を経過し新たに受信できていないばあいにエラー状態とする)と定期送信するCCMの送信フラグをtrueにセットするがその後に
この関数が呼び出される.

この関数ではCCMの登録時に送信に設定してある場合の送信フラグをチェックすることが可能で,送信フラグをtrueにセットしておくと
この関数の終了後に自動的に通信文が送信される.(falseにすると送信されない)

例)ccmList[0]->flagstimeRfirst = true;

これで強制的に送信設定される.

この関数終了後に16520番ポートに通信文が送信される.
void UserEveryLoop() システムのタイマカウント,httpサーバーの処理,UDP16520番ポートと16529番ポートの通信文をチェックした後,呼び出さされる関数.
呼び出される頻度が高いため,重い処理を記述しないこと.
void loop() この関数内ではUECSloop()関数を呼び出さなくてはならない.必要に応じて処理を記述してもかまわない.
void setup() この関数内ではUECSsetup()関数を呼び出さなくてはならない.必要に応じて処理を記述してもかまわない.

最初へ 前のページへ 次のページへ