Skip to content

Instantly share code, notes, and snippets.

@naokisekiguchi
Last active January 23, 2017 04:42
Show Gist options
  • Save naokisekiguchi/a3a5929fdb3392f6669f061d77978b5b to your computer and use it in GitHub Desktop.
Save naokisekiguchi/a3a5929fdb3392f6669f061d77978b5b to your computer and use it in GitHub Desktop.
WoTsignage:物理スイッチ押下時の処理まで
//Lチカ用にLEDポートのためのグローバル変数を定義
var ledPort;
// task.js ライブラリ
const { spawn, sleep } = task;
// document 内のリソースが読み終わるのを待つ
document.addEventListener("DOMContentLoaded", () => {
// task.js の spawn 関数内では Promise が同期的に記述できる
spawn(function() {
// GPIO へのアクセサを取得
const gpioAccessor = yield navigator.requestGPIOAccess();
//GPIO198(CHIRIMEN CN1-9)をLチカ用のGPIOポートとして利用する
ledPort = gpioAccessor.ports.get(198);
//ledPortを出力として利用する
yield ledPort.export("out");
//GPIO199(CHIRIMEN CN1-10)をタクトスイッチ用のGPIOポート
var btnPort = gpioAccessor.ports.get(199);
//btnPortを入力として利用する
yield btnPort.export("in");
//btnPortの値に変化があった時(タクトスイッチが押された時)の処理を規定
btnPort.onchange = (btnValue) => {
//コンソールにメッセージを出力
console.log("pushed!!",btnValue);
}
//リンクをクリックした時のイベントを設定する関数
addEventLink();
});
});
function addEventLink(){
//ドキュメント内のaタグを全て取得
Array.from(document.querySelectorAll("a"), (e) => {
//取得した要素(aタグ)にtouchstartイベントを設定(CHIRIMENではマウスイベントはtouchイベントに置き換えられる)
e.addEventListener("touchstart",()=>{
//LEDを点灯させる
ledPort.write(1);
//一致時間(1000ミリ秒)後の処理を記述
setTimeout(()=>{
//LEDを消灯させる
ledPort.write(0);
},1000);
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment