ロジックアナライザー

ピンの状態を監視し、一定間隔で1,0の状態を取得します。信号が送られているかの確認などに利用できます。obnizで利用できるLogicAnalyerは1つのみです。

How work

ロジックアナライザーはトリガーをきっかけに開始します。デフォルトトリガーは「ioの変化」です。ioが変化した後のioの変化を指定された時間記録します。
完了し、データを送信したら再度、ioの変化を待ちます(つまり継続動作します)

サンプリングの間隔と欲しいサンプルの時間を指定できます。例えばinterval(間隔)が1msでduration(長さ)を800msにした場合は800サンプルを受けることになります。また、サンプル数は必ず8の倍数となります。

Trigger Option

デフォルトトリガーは「ioの変化」ですが、これですとノイズも取得しがちです。信号の開始が決まっているパターンを取りたい場合はtriggerValue/triggerValueSamplesを設定します。

  1. triggerValue – 取得開始したい値
  2. triggerValueSamples – その値が何サンプル続けば記録することにするか

このトリガーはつまり “true/(かfalse)がXだけ続いたら記録を開始する”という意味になります。

開始にはlogicAnalyzer.start()を利用します。監視するioと取得間隔・長さを指定します。検知した場合にはlogicAnalyzer.onmeasuredで指定した関数が呼ばれます。

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サンプル続いたら」の例となります。

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()を呼ぶことで終了します。

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();
}