オートメーションシステムには必ず「IF(もしも)」があって「THEN(〇〇する)」の2つが合わさって成り立ちます。。
今回は「もしも一定期間何もボタンを押さない場合、○○を実行する」という概要を紹介します。
豊富な「トリガー」 x 「アクション」を活用しよう
一般的なフロー
- トリガー:もしもiViewer4内に用意されたボタンを押すと・・・
- アクション:リレーが閉じる
- 結果:電気がつく
これが基本であり、「結果」を動かすために、どういうアクションを起こせばいいか、最も近道を探るのが当社の設置業者の腕の見せ所です。
トリガーに「もしも〇〇秒間ボタンを押さなかったら」とjsファイルを埋め込む
- トリガー:もしもiViewer4内のボタンを10秒間何も押さないと・・・
- アクション:APIでiPadのディスプレイの照度を変える
- 結果:スクリーンセーバーになる
といったことが可能です。
java script
var counter1 = 0, counter2 = 0, timer1 = 5; timer2 = 10;
var startjoin= 0, stopjoin = 2000;
var allJoins = [];
for (startjoin = 0; startjoin <= stopjoin; allJoins.push("d"+startjoin++));
function onButtonPressed(join, value, tokens) {
counter1 = 0; counter2 = 0;
CF.log("counter: "+counter);
}
function onBackButtonPressed() {
counter1 = 0; counter2 = 0;
CF.flipToPage("Startup");
}
function onPageFlip(from, to, orientation){
CF.log("From: " + from + " To: " + to + "");
counter1 = 0; counter2 = 0;
}
CF.userMain = function() {
var timerID = setInterval(function(){
if(counter1 == timer1){
CF.runCommand("Loopback", "action1"); //x command
counter1 = 0;
}
if(counter2 == timer2){
CF.runCommand("Loopback", "action2"); //y command
counter2 = 0;
}
counter1 = counter1 + 1;
counter2 = counter2 + 1;
},1000);
CF.watch(CF.ObjectPressedEvent, allJoins, onButtonPressed);
CF.watch(CF.PageFlipEvent, onPageFlip, true);
// Watch two sliders and a button
CF.log("counter: "+counter);
};
解説
GUI Designer内で起こしたいアクションを2つ用意します。
31行目、38行目で起こしたいコマンド名を割り当てます。