EspruinoのビルトインLEDをコントロールするクラスを書いた

Espruino Advent Calender 13日目です。

Espruinoでちょっとまともなモックアップをつくったりしていると、電源状態やエラーの通知などでビルトインのLEDを点灯させたり点滅させたりする必要がでてきました。
Espruinoには赤、緑、青の3つのLEDがついてJavaScript的にはLED1, LED2, LED3というオブジェクトが割り当てられています。
なんかちょっとそれっぽいプロトタイプをつくるときに例えば電源ONのときには緑を点灯、通信中のときは青を点滅、エラーのときには赤を点滅といった制御をすると見た目それっぽくていいです。

処理的には単純なんだけど、毎回書くのがめんどうだなと思って簡単に使えるSignalsクラスを書きました。

こんな感じで使います。

LED1~3の振る舞いをセットしたオブジェクトを segnals.set()の引数にするだけです。
上記のコードではLED1(赤)が消灯、LED2(緑)が点滅、LED3(青)が点灯です。

Signalsのソースコードはこんな感じ。最近慣れてきたTypeScriptで書きました。

tscで吐かれたJavaScriptコードは以下。こちらをEspruino IDEに貼り付けて動かします。

Espruinoはrequire()で外部JSモジュールを読み込めるんだけど、 9日目で書かれているようにSDカードが必要だったりちょっとしたことでやるには面倒です。
なので今のところmoduleにせず単なるクラスとして利用するようにしてます。

利用する場合は Signals クラスを単にプログラムに含めるかたちで。ちょっとソースが冗長になるけど、まあ簡単便利とトレードオフかなと思ってます。
個人的には便利に使えてます。