Gtl.create moving thresh: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
Строка 20: Строка 20:
:<code style="color: purple>thresh.level = 0.5;</code> - пороговый уровень для параметра, при превышении которого фиксируется превышение;
:<code style="color: purple>thresh.level = 0.5;</code> - пороговый уровень для параметра, при превышении которого фиксируется превышение;
:<code style="color: purple>thresh.triggered.connect(flag, sample);</code> - слот для подключения функции обработки результата;
:<code style="color: purple>thresh.triggered.connect(flag, sample);</code> - слот для подключения функции обработки результата;
<pre>
flag - состояние срабатывания триггера (превышение заданного порога), bool
sample - время (отсчет) срабатывания триггера
</pre>


== Пример использования ==
== Пример использования ==

Версия от 04:26, 30 марта 2026

Краткое описание

Функция предназначена для фиксации превышений максимального значения параметра в указанном временном интервале наблюдения. Применяется для контроля стабильного превышения параметрами установленного порога в течение указанного времени.

Объявление функции

var thresh = gtl.gtl.create_moving_thresh(
    {
      src: gtl.analog_inputs[0],
      name: "thresh",
      time: 0.1,
      level: 0.5
    }
);

Свойства (методы)

thresh.src = gtl.analog_inputs[0]; - источник сигнала;
thresh.name = "thresh"; - присвоение имени параметру;
thresh.time = 0.1; - временной интервал наблюдения, в течение которого должно фиксироваться постоянное превышение порога, сек.;
thresh.level = 0.5; - пороговый уровень для параметра, при превышении которого фиксируется превышение;
thresh.triggered.connect(flag, sample); - слот для подключения функции обработки результата;

Пример использования

var thresh = gtl.create_moving_thresh(
    {
      src : gtl.analog_inputs[0],
      name : "thresh",
      time : 0.001,
      level : 0.5
    }
);

thresh.triggered.connect(thresh_triggered_event);

let cnt = 0;

function thresh_triggered_event(flag, sample)
{
  gtl.log.info("tresh trigger", flag);

  if(flag)
    gtl.log.info("trigger on time", sample/thresh.rate);
  else
    gtl.log.info("trigger off time", sample/thresh.rate);

  cnt++;

  if(cnt == 6)
    gtl.stop();
}