Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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
You can’t perform that action at this time.