ピンの状態を監視し、一定間隔で1,0の状態を取得します。信号が送られているかの確認などに利用できます。obnizで利用できるLogicAnalyerは1つのみです。
How work
ロジックアナライザーはトリガーをきっかけに開始します。デフォルトトリガーは「ioの変化」です。ioが変化した後のioの変化を指定された時間記録します。
完了し、データを送信したら再度、ioの変化を待ちます(つまり継続動作します)
サンプリングの間隔と欲しいサンプルの時間を指定できます。例えばinterval(間隔)が1msでduration(長さ)を800msにした場合は800サンプルを受けることになります。また、サンプル数は必ず8の倍数となります。
Trigger Option
デフォルトトリガーは「ioの変化」ですが、これですとノイズも取得しがちです。信号の開始が決まっているパターンを取りたい場合はtriggerValue/triggerValueSamplesを設定します。
- triggerValue - 取得開始したい値
- triggerValueSamples - その値が何サンプル続けば記録することにするか
このトリガーはつまり "true/(かfalse)がXだけ続いたら記録を開始する"という意味になります。
開始にはlogicAnalyzer.start()を利用します。監視するioと取得間隔・長さを指定します。検知した場合にはlogicAnalyzer.onmeasuredで指定した関数が呼ばれます。
// Javascript Example
obniz.logicAnalyzer.start({io:0, interval:2, duration:1000}); // start on io0. 2ms interval and 1sec long.
obniz.logicAnalyzer.onmeasured = function(array) {
console.log(array);
}
トリガー条件を指定する場合はstart時に指定します。以下ではトリガーを「trueからfalseになったら・かつfalseが3サンプル続いたら」の例となります。
// Javascript Example
obniz.logicAnalyzer.start({io:0, interval:2, duration:1000, triggerValue:false, triggerValueSamples:3}); // start on io0. 2ms interval and 1sec long.
obniz.logicAnalyzer.onmeasured = function(array) {
console.log(array);
}
終了
開始したlogicAnalyzerはend()を呼ぶことで終了します。
// Javascript Example
obniz.logicAnalyzer.start({io:0, interval:2, duration:1000}); // start on io0. 1ms interval and 1sec long.
obniz.logicAnalyzer.onmeasured = function(array) {
console.log(array);
obniz.logicAnalyzer.end();
}