<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://docs.gtlab.pro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlekseyCube</id>
	<title>GTL-wiki - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="http://docs.gtlab.pro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlekseyCube"/>
	<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/AlekseyCube"/>
	<updated>2026-05-25T03:16:09Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1351</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1351"/>
		<updated>2026-04-29T04:59:56Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let options = gtl.options;&lt;br /&gt;
let point = gtl.options.point;&lt;br /&gt;
let record = gtl.options.record;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //время записи для анализа&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (не менее времени построения спектра)&lt;br /&gt;
let time_pre = time_window / 2; //время предыстории&lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
    src: src,&lt;br /&gt;
    name: &amp;quot;max&amp;quot;,&lt;br /&gt;
    time: time_window&lt;br /&gt;
}); //скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
    src: __max,&lt;br /&gt;
    name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
    time: time_window,&lt;br /&gt;
    level: 315&lt;br /&gt;
}); //порог&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
    if (is_ranges) return;&lt;br /&gt;
    if (flag) {&lt;br /&gt;
        let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера&lt;br /&gt;
        gtl.log.info(&amp;quot;trigger on time&amp;quot;, start);&lt;br /&gt;
&lt;br /&gt;
        let range = {&lt;br /&gt;
            min: start,&lt;br /&gt;
            max: start + time_impulse&lt;br /&gt;
        };&lt;br /&gt;
        ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
function diagnose() {&lt;br /&gt;
    if (!is_ranges) {&lt;br /&gt;
        gtl.player.custom_ranges = ranges; // добавляем пользовательские диапазоны в плеер&lt;br /&gt;
        gtl.results = { ranges: ranges }; // добавляем диапазоны в результат&lt;br /&gt;
        gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
        gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
        is_ranges = true; // пользовательские диапазоны готовы&lt;br /&gt;
        gtl.diagnostic.interval = time_impulse; // задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
&lt;br /&gt;
        gtl.log.info(&amp;quot;Количество диапазонов в плеере&amp;quot;, ranges.length);&lt;br /&gt;
        gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse);&lt;br /&gt;
        gtl.log.info(&amp;quot;acq_time&amp;quot;, gtl.acq_time);&lt;br /&gt;
&lt;br /&gt;
        plot.add({&lt;br /&gt;
            color: 0x0000ff, //цвет графика&lt;br /&gt;
            name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
            x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
            y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
        }); //рисуем сигнал для контроля&lt;br /&gt;
&lt;br /&gt;
        plot.add({&lt;br /&gt;
            color: 0xff00ff, //цвет графика&lt;br /&gt;
            name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
            x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
            y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
        }); //рисуем сигнал для контроля&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (tries &amp;gt; 0) {&lt;br /&gt;
        gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
          Математика обработки сигнала&lt;br /&gt;
        */&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    tries++;&lt;br /&gt;
    if (tries &amp;gt; ranges.length) gtl.diagnostic.stop(); // останавливаем диагностику после окончания диапазонов&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1350</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1350"/>
		<updated>2026-04-09T01:16:25Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.trendspec_var&amp;diff=1349</id>
		<title>Gtl.trendspec var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.trendspec_var&amp;diff=1349"/>
		<updated>2026-04-09T01:14:27Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Построение тренда изменения СКЗ виброскорости в диапазоне 40-400 Гц и построение спектра вибрации при превышении порогового значения СКЗ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Построение тренда изменения СКЗ виброскорости в диапазоне 40-400 Гц по всем каналам записи и построение спектра вибрации при превышении порогового значения СКЗ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
let record_time = gtl.options.record.playerTime; //указанная длительность записи или полная длина gtl.options.record.playerTime; &lt;br /&gt;
&lt;br /&gt;
let time = 1; //период расчета СКЗ&lt;br /&gt;
let counter = 0; //счетчик&lt;br /&gt;
let thres = 14; //предельный уровень СКЗ&lt;br /&gt;
let rms_arr = []; //массив значений СКЗ &lt;br /&gt;
for (let i = 0; i &amp;lt; signals.length; i++) { rms_arr.push([]) }; //формируем вложенные массивы по количеству каналов&lt;br /&gt;
&lt;br /&gt;
function create_rms(src) {&lt;br /&gt;
  // Фильтр ФНЧ&lt;br /&gt;
  let __lpf = gtl.add_filter_iir(src); //объявление переменной фильтра&lt;br /&gt;
  __lpf.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
  __lpf.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
  __lpf.order = 6; //порядок фильтра&lt;br /&gt;
  __lpf.frequency = 400; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
  // Интегрирование сигнала виброускорения (преобразуем в виброскорость)&lt;br /&gt;
  let __int = gtl.add_intg(__lpf); //интегрирование&lt;br /&gt;
  __int.taps = 1; //степень интегрирования (скорость из ускорения - 1-нарное интегрирование)&lt;br /&gt;
  __int.scale = 1000; //переводим метры в миллиметры&lt;br /&gt;
&lt;br /&gt;
  // Фильтр ФВЧ&lt;br /&gt;
  let __hpf = gtl.add_filter_iir(__int); //объявление переменной фильтра&lt;br /&gt;
  __hpf.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
  __hpf.type = gtl.filter_iir.highpass; //тип фильтра (ФВЧ)&lt;br /&gt;
  __hpf.order = 6; //порядок фильтра&lt;br /&gt;
  __hpf.frequency = 40; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
  let __rms = gtl.add_value_rms(__hpf); //объявление переменной СКЗ&lt;br /&gt;
  __rms.time = time; //время выборки&lt;br /&gt;
&lt;br /&gt;
  return __rms&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
let rmss = []; //массив объектов СКЗ&lt;br /&gt;
let specs = []; //массив объектов спектра&lt;br /&gt;
&lt;br /&gt;
//формируем объекты для расчета СКЗ и построения спектров&lt;br /&gt;
for (let i = 0; i &amp;lt; signals.length; i++) {&lt;br /&gt;
  let __rmsv = create_rms(gtl.analog_inputs[signals[i].portNumber]); //формируем объект СКЗ по каждому каналу&lt;br /&gt;
  let __ausp = gtl.create_ausp({&lt;br /&gt;
    src: gtl.analog_inputs[signals[i].portNumber], //источник сигнала&lt;br /&gt;
    frequency: 40000, //граничная частота&lt;br /&gt;
    resolution: 10, //частотное разрешение&lt;br /&gt;
    average: 1, //количество усреднений&lt;br /&gt;
    overlap: 0, //коэффициент перекрытия&lt;br /&gt;
    window: gtl.spec.hann, //оконная функция&lt;br /&gt;
    view: gtl.spec.unit //единицы отображения амплитуды&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  rmss.push(__rmsv); //добавляем объект RMS в массив&lt;br /&gt;
  specs.push(__ausp); //добавляем объект спектра в массив&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let plot0 = gtl.plots.add(&amp;quot;Тренды СКЗ&amp;quot;);&lt;br /&gt;
let plot2 = gtl.plots.add(&amp;quot;Спектры&amp;quot;);&lt;br /&gt;
let __result = {}; //результат анализа составляющих спектра&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time; //интервал запуска функции диагностики&lt;br /&gt;
gtl.log.info(&amp;quot;Интервал запуска диагностики&amp;quot;, gtl.diagnostic.interval);&lt;br /&gt;
gtl.log.info(&amp;quot;Длительность сигнала&amp;quot;, gtl.options.record.playerTime);&lt;br /&gt;
gtl.log.info(&#039;Количество каналов в записи&#039;, signals.length);&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  for (let i = 0; i &amp;lt; signals.length; i++) {&lt;br /&gt;
    let value = rmss[i].value;&lt;br /&gt;
    rms_arr[i].push(value);&lt;br /&gt;
    gtl.log.info(`${signals[i].name} - RMS`, value);&lt;br /&gt;
&lt;br /&gt;
    if (value &amp;gt;= thres) {&lt;br /&gt;
      gtl.log.info(&amp;quot;Внимание! Превышение порога по СКЗ(V)&amp;quot;, `В канале ${signals[i].name} на ${counter} секунде записи`)&lt;br /&gt;
      plot2.add({&lt;br /&gt;
        color: 0x55aa00,&lt;br /&gt;
        name: `${signals[i].name} - AUSP`,&lt;br /&gt;
        x: specs[i].resolution,&lt;br /&gt;
        y: specs[i].data&lt;br /&gt;
      }); //рисуем тренд СКЗ виброскорости на plot для каждого канала&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  //отображаем накопленные данные на plot&lt;br /&gt;
  if (counter &amp;gt;= Math.round(record_time / gtl.diagnostic.interval)) {&lt;br /&gt;
    for (let i = 0; i &amp;lt; signals.length; i++) {&lt;br /&gt;
      plot0.add({&lt;br /&gt;
        color: 0x55aaff,&lt;br /&gt;
        name: `${signals[i].name} - RMS`,&lt;br /&gt;
        x: gtl.diagnostic.interval,&lt;br /&gt;
        y: rms_arr[i]&lt;br /&gt;
      }); //рисуем тренд СКЗ виброскорости на plot для каждого канала&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    gtl.results = __result;&lt;br /&gt;
    gtl.diagnostic.stop()&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // gtl.log.info(&#039;Счетчик&#039;, counter);&lt;br /&gt;
  counter++;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.trendspec_var&amp;diff=1348</id>
		<title>Gtl.trendspec var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.trendspec_var&amp;diff=1348"/>
		<updated>2026-04-09T01:13:44Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Построение тренда изменения СКЗ виброскорости в диапазоне 40-400 Гц и построение спектра вибрации при превышении порогового значения СКЗ== &amp;lt;pre&amp;gt; &amp;quot;use strict&amp;quot;; let signals = gtl.options.record.signalsModel; let record_time = gtl.options.record.playerTime; //указанная длительность записи или полная длина g...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Построение тренда изменения СКЗ виброскорости в диапазоне 40-400 Гц и построение спектра вибрации при превышении порогового значения СКЗ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
let record_time = gtl.options.record.playerTime; //указанная длительность записи или полная длина gtl.options.record.playerTime; &lt;br /&gt;
&lt;br /&gt;
let time = 1; //период расчета СКЗ&lt;br /&gt;
let counter = 0; //счетчик&lt;br /&gt;
let thres = 14; //предельный уровень СКЗ&lt;br /&gt;
let rms_arr = []; //массив значений СКЗ &lt;br /&gt;
for (let i = 0; i &amp;lt; signals.length; i++) { rms_arr.push([]) }; //формируем вложенные массивы по количеству каналов&lt;br /&gt;
&lt;br /&gt;
function create_rms(src) {&lt;br /&gt;
  // Фильтр ФНЧ&lt;br /&gt;
  let __lpf = gtl.add_filter_iir(src); //объявление переменной фильтра&lt;br /&gt;
  __lpf.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
  __lpf.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
  __lpf.order = 6; //порядок фильтра&lt;br /&gt;
  __lpf.frequency = 400; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
  // Интегрирование сигнала виброускорения (преобразуем в виброскорость)&lt;br /&gt;
  let __int = gtl.add_intg(__lpf); //интегрирование&lt;br /&gt;
  __int.taps = 1; //степень интегрирования (скорость из ускорения - 1-нарное интегрирование)&lt;br /&gt;
  __int.scale = 1000; //переводим метры в миллиметры&lt;br /&gt;
&lt;br /&gt;
  // Фильтр ФВЧ&lt;br /&gt;
  let __hpf = gtl.add_filter_iir(__int); //объявление переменной фильтра&lt;br /&gt;
  __hpf.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
  __hpf.type = gtl.filter_iir.highpass; //тип фильтра (ФВЧ)&lt;br /&gt;
  __hpf.order = 6; //порядок фильтра&lt;br /&gt;
  __hpf.frequency = 40; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
  let __rms = gtl.add_value_rms(__hpf); //объявление переменной СКЗ&lt;br /&gt;
  __rms.time = time; //время выборки&lt;br /&gt;
&lt;br /&gt;
  return __rms&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
let rmss = []; //массив объектов СКЗ&lt;br /&gt;
let specs = []; //массив объектов спектра&lt;br /&gt;
&lt;br /&gt;
//формируем объекты для расчета СКЗ и построения спектров&lt;br /&gt;
for (let i = 0; i &amp;lt; signals.length; i++) {&lt;br /&gt;
  let __rmsv = create_rms(gtl.analog_inputs[signals[i].portNumber]); //формируем объект СКЗ по каждому каналу&lt;br /&gt;
  let __ausp = gtl.create_ausp({&lt;br /&gt;
    src: gtl.analog_inputs[signals[i].portNumber], //источник сигнала&lt;br /&gt;
    frequency: 40000, //граничная частота&lt;br /&gt;
    resolution: 10, //частотное разрешение&lt;br /&gt;
    average: 1, //количество усреднений&lt;br /&gt;
    overlap: 0, //коэффициент перекрытия&lt;br /&gt;
    window: gtl.spec.hann, //оконная функция&lt;br /&gt;
    view: gtl.spec.unit //единицы отображения амплитуды&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  rmss.push(__rmsv); //добавляем объект RMS в массив&lt;br /&gt;
  specs.push(__ausp); //добавляем объект спектра в массив&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let plot0 = gtl.plots.add(&amp;quot;Тренды СКЗ&amp;quot;);&lt;br /&gt;
let plot2 = gtl.plots.add(&amp;quot;Спектры&amp;quot;);&lt;br /&gt;
let __result = {}; //результат анализа составляющих спектра&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time; //интервал запуска функции диагностики&lt;br /&gt;
gtl.log.info(&amp;quot;Интервал запуска диагностики&amp;quot;, gtl.diagnostic.interval);&lt;br /&gt;
gtl.log.info(&amp;quot;Длительность сигнала&amp;quot;, gtl.options.record.playerTime);&lt;br /&gt;
gtl.log.info(&#039;Количество каналов в записи&#039;, signals.length);&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  for (let i = 0; i &amp;lt; signals.length; i++) {&lt;br /&gt;
    let value = rmss[i].value;&lt;br /&gt;
    rms_arr[i].push(value);&lt;br /&gt;
    gtl.log.info(`${signals[i].name} - RMS`, value);&lt;br /&gt;
&lt;br /&gt;
    if (value &amp;gt;= thres) {&lt;br /&gt;
      gtl.log.info(&amp;quot;Внимание! Превышение порога по СКЗ(V)&amp;quot;, `В канале ${signals[i].name} на ${counter} секунде записи`)&lt;br /&gt;
      plot2.add({&lt;br /&gt;
        color: 0x55aa00,&lt;br /&gt;
        name: `${signals[i].name} - AUSP`,&lt;br /&gt;
        x: specs[i].resolution,&lt;br /&gt;
        y: specs[i].data&lt;br /&gt;
      }); //рисуем тренд СКЗ виброскорости на plot для каждого канала&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  //отображаем накопленные данные на plot&lt;br /&gt;
  if (counter &amp;gt;= Math.round(record_time / gtl.diagnostic.interval)) {&lt;br /&gt;
    for (let i = 0; i &amp;lt; signals.length; i++) {&lt;br /&gt;
      plot0.add({&lt;br /&gt;
        color: 0x55aaff,&lt;br /&gt;
        name: `${signals[i].name} - RMS`,&lt;br /&gt;
        x: gtl.diagnostic.interval,&lt;br /&gt;
        y: rms_arr[i]&lt;br /&gt;
      }); //рисуем тренд СКЗ виброскорости на plot для каждого канала&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    gtl.results = __result;&lt;br /&gt;
    gtl.diagnostic.stop()&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // gtl.log.info(&#039;Счетчик&#039;, counter);&lt;br /&gt;
  counter++;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1347</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1347"/>
		<updated>2026-04-09T01:11:23Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Примеры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.triggers_var&amp;diff=1346</id>
		<title>Gtl.triggers var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.triggers_var&amp;diff=1346"/>
		<updated>2026-04-08T01:20:36Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Определение направления вращения по сдвигу фазы двух источников импульсов с использованием триггера == &amp;lt;pre&amp;gt; &amp;quot;use strict&amp;quot;; let time = 0.5; //время записи для анализа let src1 = gtl.analog_inputs[0]; //первый источник сигнала src1.history = time; //выборка для построения графика первого сигн...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Определение направления вращения по сдвигу фазы двух источников импульсов с использованием триггера ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let time = 0.5; //время записи для анализа&lt;br /&gt;
let src1 = gtl.analog_inputs[0]; //первый источник сигнала&lt;br /&gt;
src1.history = time; //выборка для построения графика первого сигнала импульсов&lt;br /&gt;
&lt;br /&gt;
//Искусственный сдвиг фазы с применением фильтра для реализации примера&lt;br /&gt;
let src2 = gtl.add_filter_iir(src1); //источник второго сигнала&lt;br /&gt;
src2.kind = gtl.filter_iir.bessel; //тип оконной функции&lt;br /&gt;
src2.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
src2.order = 12; //порядок фильтра&lt;br /&gt;
src2.frequency = 30; //граничная частота фильтра&lt;br /&gt;
src2.history = time; //выборка для построения графика второгосигнала импульсов&lt;br /&gt;
 &lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения для срабатывания триггера&lt;br /&gt;
let arr1 = []; //массив отсчетов триггера 1&lt;br /&gt;
let arr2 = []; //массив отсчетов триггера 2&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
let thresh1 = gtl.create_moving_thresh({&lt;br /&gt;
  src: src1, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh1&amp;quot;, //наименивание&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 0 //уровень срабатывания триггера&lt;br /&gt;
}); //триггер 1&lt;br /&gt;
&lt;br /&gt;
let thresh2 = gtl.create_moving_thresh({&lt;br /&gt;
  src: src2, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh2&amp;quot;, //наименивание&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 0 //уровень срабатывания триггера&lt;br /&gt;
}); //триггер 2&lt;br /&gt;
&lt;br /&gt;
thresh1.triggered.connect(thresh_triggered_event1);&lt;br /&gt;
thresh2.triggered.connect(thresh_triggered_event2);&lt;br /&gt;
&lt;br /&gt;
//функция обработки события при срабатывании триггера 1&lt;br /&gt;
function thresh_triggered_event1(flag, sample) {&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start1 = sample / thresh1.rate; //время срабатывания триггера1&lt;br /&gt;
    arr1.push(start1);&lt;br /&gt;
    gtl.log.info(`trigger1 on time`, start1);&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//функция обработки события при срабатывании триггера 1&lt;br /&gt;
function thresh_triggered_event2(flag, sample) {&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start2 = sample / thresh2.rate; //время срабатывания триггера2&lt;br /&gt;
    arr2.push(start2);&lt;br /&gt;
    gtl.log.info(`trigger2 on time`, start2);&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  // Вычисляем разницу среднюю разницу фаз&lt;br /&gt;
  let difference = arr1.reduce((sum, item) =&amp;gt; sum + item, 0) - arr2.reduce((sum, item) =&amp;gt; sum + item, 0); &lt;br /&gt;
  &lt;br /&gt;
  // Определяем направление вращения&lt;br /&gt;
  let d = &amp;quot;Не определено&amp;quot;;&lt;br /&gt;
  if (difference &amp;lt; 0) { d = &amp;quot;Прямое&amp;quot; } else { d = &amp;quot;Обратное&amp;quot; };&lt;br /&gt;
&lt;br /&gt;
  plot.add({&lt;br /&gt;
    color: 0x0000ff, //цвет графика&lt;br /&gt;
    name: &amp;quot;src1&amp;quot;, //наименование графика&lt;br /&gt;
    x: 1 / src1.rate, //частотное разрешение&lt;br /&gt;
    y: src1.getHistoryArray() //получение данных выборки&lt;br /&gt;
  }); //рисуем сигнал 1 для контроля&lt;br /&gt;
&lt;br /&gt;
  plot.add({&lt;br /&gt;
    color: 0xff00ff, //цвет графика&lt;br /&gt;
    name: &amp;quot;src2&amp;quot;, //наименование графика&lt;br /&gt;
    x: 1 / src2.rate, //частотное разрешение&lt;br /&gt;
    y: src2.getHistoryArray() //получение данных выборки&lt;br /&gt;
  }); //рисуем сигнал 2 для контроля&lt;br /&gt;
&lt;br /&gt;
  // Добавляем данные в блок результата&lt;br /&gt;
  gtl.results = {&lt;br /&gt;
    arr1: arr1,&lt;br /&gt;
    arr2: arr2,&lt;br /&gt;
    dir: d&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  gtl.log.info(&amp;quot;Diagnostic&amp;quot;, &#039;stop&#039;);&lt;br /&gt;
  gtl.diagnostic.stop()&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1345</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1345"/>
		<updated>2026-04-08T01:09:49Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Примеры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1344</id>
		<title>Gtl.create moving thresh</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1344"/>
		<updated>2026-03-30T04:28:58Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для фиксации превышений максимального значения параметра в указанном временном интервале наблюдения. Применяется для контроля стабильного превышения параметрами установленного порога в течение указанного времени.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var thresh = gtl.gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src: gtl.analog_inputs[0],&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time: 0.1,&lt;br /&gt;
      level: 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.name = &amp;quot;thresh&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени параметру;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.time = 0.1;&amp;lt;/code&amp;gt; - временной интервал наблюдения, в течение которого должно фиксироваться постоянное превышение порога, сек.;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.level = 0.5;&amp;lt;/code&amp;gt; - пороговый уровень для параметра, при превышении которого фиксируется превышение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.triggered.connect(flag, sample);&amp;lt;/code&amp;gt; - слот для подключения функции обработки результата;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Функция, подключенная к слоту должна содержать в аргументах два параметра&lt;br /&gt;
flag - состояние срабатывания триггера (превышение заданного порога), bool&lt;br /&gt;
sample - время (отсчет) срабатывания триггера&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var thresh = gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src : gtl.analog_inputs[0],&lt;br /&gt;
      name : &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time : 0.001,&lt;br /&gt;
      level : 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
thresh.triggered.connect(thresh_triggered_event);&lt;br /&gt;
&lt;br /&gt;
let cnt = 0;&lt;br /&gt;
&lt;br /&gt;
function thresh_triggered_event(flag, sample)&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;tresh trigger&amp;quot;, flag);&lt;br /&gt;
&lt;br /&gt;
  if(flag)&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
  else&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger off time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
&lt;br /&gt;
  cnt++;&lt;br /&gt;
&lt;br /&gt;
  if(cnt == 6)&lt;br /&gt;
    gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1343</id>
		<title>Gtl.create moving thresh</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1343"/>
		<updated>2026-03-30T04:26:32Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для фиксации превышений максимального значения параметра в указанном временном интервале наблюдения. Применяется для контроля стабильного превышения параметрами установленного порога в течение указанного времени.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var thresh = gtl.gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src: gtl.analog_inputs[0],&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time: 0.1,&lt;br /&gt;
      level: 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.name = &amp;quot;thresh&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени параметру;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.time = 0.1;&amp;lt;/code&amp;gt; - временной интервал наблюдения, в течение которого должно фиксироваться постоянное превышение порога, сек.;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.level = 0.5;&amp;lt;/code&amp;gt; - пороговый уровень для параметра, при превышении которого фиксируется превышение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.triggered.connect(flag, sample);&amp;lt;/code&amp;gt; - слот для подключения функции обработки результата;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var thresh = gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src : gtl.analog_inputs[0],&lt;br /&gt;
      name : &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time : 0.001,&lt;br /&gt;
      level : 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
thresh.triggered.connect(thresh_triggered_event);&lt;br /&gt;
&lt;br /&gt;
let cnt = 0;&lt;br /&gt;
&lt;br /&gt;
function thresh_triggered_event(flag, sample)&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;tresh trigger&amp;quot;, flag);&lt;br /&gt;
&lt;br /&gt;
  if(flag)&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
  else&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger off time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
&lt;br /&gt;
  cnt++;&lt;br /&gt;
&lt;br /&gt;
  if(cnt == 6)&lt;br /&gt;
    gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1342</id>
		<title>Gtl.create moving thresh</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1342"/>
		<updated>2026-03-30T04:26:06Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для фиксации превышений максимального значения параметра в указанном временном интервале наблюдения. Применяется для контроля стабильного превышения параметрами установленного порога в течение указанного времени.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var thresh = gtl.gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src: gtl.analog_inputs[0],&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time: 0.1,&lt;br /&gt;
      level: 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.name = &amp;quot;thresh&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени параметру;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.time = 0.1;&amp;lt;/code&amp;gt; - временной интервал наблюдения, в течение которого должно фиксироваться постоянное превышение порога, сек.;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.level = 0.5;&amp;lt;/code&amp;gt; - пороговый уровень для параметра, при превышении которого фиксируется превышение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.triggered.connect(flag, sample);&amp;lt;/code&amp;gt; - слот для подключения функции обработки результата;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flag - состояние срабатывания триггера (превышение заданного порога), bool&lt;br /&gt;
sample - время (отсчет) срабатывания триггера&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var thresh = gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src : gtl.analog_inputs[0],&lt;br /&gt;
      name : &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time : 0.001,&lt;br /&gt;
      level : 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
thresh.triggered.connect(thresh_triggered_event);&lt;br /&gt;
&lt;br /&gt;
let cnt = 0;&lt;br /&gt;
&lt;br /&gt;
function thresh_triggered_event(flag, sample)&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;tresh trigger&amp;quot;, flag);&lt;br /&gt;
&lt;br /&gt;
  if(flag)&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
  else&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger off time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
&lt;br /&gt;
  cnt++;&lt;br /&gt;
&lt;br /&gt;
  if(cnt == 6)&lt;br /&gt;
    gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_moving_median&amp;diff=1341</id>
		<title>Gtl.create moving median</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_moving_median&amp;diff=1341"/>
		<updated>2026-03-30T04:14:23Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для получения скользящего медианного значения для последующей обработки различными методами.  == Объявление функции == &amp;lt;pre style=&amp;quot;color: purple&amp;gt; let __median = gtl.create_moving_median(   {     src: gtl.analog_inputs[0],     name: &amp;quot;median&amp;quot;,     time: 0.1       } ); &amp;lt;/pre&amp;gt;  == Св...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для получения скользящего медианного значения для последующей обработки различными методами.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __median = gtl.create_moving_median(&lt;br /&gt;
  {&lt;br /&gt;
    src: gtl.analog_inputs[0],&lt;br /&gt;
    name: &amp;quot;median&amp;quot;,&lt;br /&gt;
    time: 0.1    &lt;br /&gt;
  }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__median.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__median.name = &amp;quot;avg&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени скользящего медианного значения;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__median.time = 0.1;&amp;lt;/code&amp;gt; - время выборки данных;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//построение графика скользящего медианного значения &lt;br /&gt;
let time = 1;&lt;br /&gt;
let __median = gtl.create_moving_median(&lt;br /&gt;
  {&lt;br /&gt;
    src: gtl.analog_inputs[0],&lt;br /&gt;
    name: &amp;quot;median&amp;quot;,&lt;br /&gt;
    time: time    &lt;br /&gt;
  }&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
__median.history = time;&lt;br /&gt;
gtl.diagnostic.interval = time;&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;median values&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  plot.add(&lt;br /&gt;
    {&lt;br /&gt;
      color: 0x0000ff,&lt;br /&gt;
      name: __median.name,&lt;br /&gt;
      x: 1 / __median.rate,&lt;br /&gt;
      y: __median.getHistoryArray()&lt;br /&gt;
    }&lt;br /&gt;
  );&lt;br /&gt;
  &lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1340</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1340"/>
		<updated>2026-03-30T04:09:47Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Функции инициализации диагностики GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала триггеру];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1339</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1339"/>
		<updated>2026-03-25T01:56:21Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let options = gtl.options;&lt;br /&gt;
let point = gtl.options.point;&lt;br /&gt;
let record = gtl.options.record;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //время записи для анализа&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (не менее времени построения спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории&lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src,&lt;br /&gt;
  name: &amp;quot;max&amp;quot;,&lt;br /&gt;
  time: time_window&lt;br /&gt;
}); //скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max,&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
  time: time_window,&lt;br /&gt;
  level: 315&lt;br /&gt;
}); //порог&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start);&lt;br /&gt;
&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //добавляем диапазоны в результат&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    }); //рисуем сигнал для контроля&lt;br /&gt;
&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    }); //рисуем сигнал для контроля&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else { gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`) }&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
    Математика обработки сигнала&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1338</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1338"/>
		<updated>2026-03-25T01:18:42Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let options = gtl.options;&lt;br /&gt;
let point = gtl.options.point;&lt;br /&gt;
let record = gtl.options.record;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 2; //время записи для анализа&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (не менее времени построения спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории&lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src,&lt;br /&gt;
  name: &amp;quot;max&amp;quot;,&lt;br /&gt;
  time: time_window&lt;br /&gt;
}); //скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
__max.history = time;&lt;br /&gt;
&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max,&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
  time: time_window,&lt;br /&gt;
  level: 315&lt;br /&gt;
}); //порог&lt;br /&gt;
__thresh.history = time;&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start);&lt;br /&gt;
&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //добавляем диапазоны в результат&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    }); //рисуем сигнал для контроля&lt;br /&gt;
&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    }); //рисуем сигнал для контроля&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  gtl.log.info(&#039;diagnostic&#039;, `attempt ${tries} - ${true}`);&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
    Математика обработки сигнала&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1337</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1337"/>
		<updated>2026-03-25T01:14:51Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let options = gtl.options;&lt;br /&gt;
let point = gtl.options.point;&lt;br /&gt;
let record = gtl.options.record;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 2; //время записи для анализа&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (не менее времени построения спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории&lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src,&lt;br /&gt;
  name: &amp;quot;max&amp;quot;,&lt;br /&gt;
  time: time_window&lt;br /&gt;
}); //скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
__max.history = time;&lt;br /&gt;
&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max,&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
  time: time_window,&lt;br /&gt;
  level: 315&lt;br /&gt;
}); //порог&lt;br /&gt;
__thresh.history = time;&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска диагностики&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start);&lt;br /&gt;
&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //добавляем диапазоны в результат&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    }); //рисуем сигнал для контроля&lt;br /&gt;
&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    }); //рисуем сигнал для контроля&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  gtl.log.info(&#039;diagnostic&#039;, `attempt ${tries} - ${true}`);&lt;br /&gt;
&lt;br /&gt;
  /*&lt;br /&gt;
    Математика обработки сигнала&lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1336</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1336"/>
		<updated>2026-03-23T06:35:45Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 1; //время записи для анализа&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 2 //временное окно для анализа импульса (не менее времени построения спектра) &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов&lt;br /&gt;
let cnt = 0; //счетчик&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска диагностики&lt;br /&gt;
&lt;br /&gt;
let thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: src,&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
  time: time_window,&lt;br /&gt;
  level: 1&lt;br /&gt;
}); //порог&lt;br /&gt;
&lt;br /&gt;
thresh.triggered.connect(thresh_triggered_event);&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = sample / thresh.rate; //время срабатывания триггера&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start);&lt;br /&gt;
&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    cnt++; //считаем импульсы&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= cnt) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //добавляем диапазоны в результат&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.log.info(&#039;diagnostic&#039;, `attempt ${tries} - ${true}`);&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1335</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1335"/>
		<updated>2026-03-23T06:30:28Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру == &amp;lt;pre&amp;gt;   &amp;lt;/pre&amp;gt;»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1334</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1334"/>
		<updated>2026-03-23T06:28:55Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Примеры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала триггеру];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Var.png&amp;diff=1333</id>
		<title>Файл:Var.png</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Var.png&amp;diff=1333"/>
		<updated>2026-03-20T06:31:35Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Высокая и низкая дисперсия&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Высокая и низкая дисперсия&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_value_var&amp;diff=1332</id>
		<title>Gtl.add value var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_value_var&amp;diff=1332"/>
		<updated>2026-03-20T06:31:06Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:var.png|thumb|Высокая и низкая дисперсия]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для определения дисперсии (разброса значений амплитуд вибрации) в отфильтрованном диапазоне сигнала. По определению - среднее арифметическое квадратов отклонений от среднего арифмитического&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var variance = gtl.add_value_var( фильтр );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.name = &amp;quot;Var&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени измерения дисперсии;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.time = 0.5;&amp;lt;/code&amp;gt; - интервал расчета дисперсии, сек;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.avg_cnt = 4;&amp;lt;/code&amp;gt; - количество отсчетов для усреднения;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.value;&amp;lt;/code&amp;gt; - расчетное значение дисперсии;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.values;&amp;lt;/code&amp;gt; - массив, содержащий указанное количество отсчетов для усреднения;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед расчетом дисперсии&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //назначение переменной для фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)&lt;br /&gt;
filter.order = 10; //порядок фильтра&lt;br /&gt;
filter.frequency = 6400; //центральная частота полосового фильтра&lt;br /&gt;
filter.width = 1482; //ширина полосы фильтра&lt;br /&gt;
&lt;br /&gt;
//определение дисперсии значения в 1/3 октавной полосе&lt;br /&gt;
var variance = gtl.add_value_var(filter); //объявление переменной дисперсии&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 5; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  gtl.log.info(&amp;quot;Дисперсия в диапазоне&amp;quot;, variance.value);&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_value_var&amp;diff=1331</id>
		<title>Gtl.add value var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_value_var&amp;diff=1331"/>
		<updated>2026-03-20T06:30:34Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:var.png|thumb|Амплитудно-частотная и фазо-частотная характеристики]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для определения дисперсии (разброса значений амплитуд вибрации) в отфильтрованном диапазоне сигнала. По определению - среднее арифметическое квадратов отклонений от среднего арифмитического&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var variance = gtl.add_value_var( фильтр );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.name = &amp;quot;Var&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени измерения дисперсии;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.time = 0.5;&amp;lt;/code&amp;gt; - интервал расчета дисперсии, сек;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.avg_cnt = 4;&amp;lt;/code&amp;gt; - количество отсчетов для усреднения;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.value;&amp;lt;/code&amp;gt; - расчетное значение дисперсии;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.values;&amp;lt;/code&amp;gt; - массив, содержащий указанное количество отсчетов для усреднения;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед расчетом дисперсии&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //назначение переменной для фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)&lt;br /&gt;
filter.order = 10; //порядок фильтра&lt;br /&gt;
filter.frequency = 6400; //центральная частота полосового фильтра&lt;br /&gt;
filter.width = 1482; //ширина полосы фильтра&lt;br /&gt;
&lt;br /&gt;
//определение дисперсии значения в 1/3 октавной полосе&lt;br /&gt;
var variance = gtl.add_value_var(filter); //объявление переменной дисперсии&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 5; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  gtl.log.info(&amp;quot;Дисперсия в диапазоне&amp;quot;, variance.value);&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_value_var&amp;diff=1330</id>
		<title>Gtl.add value var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_value_var&amp;diff=1330"/>
		<updated>2026-03-20T06:23:29Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Краткое описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для определения дисперсии (разброса значений амплитуд вибрации) в отфильтрованном диапазоне сигнала. По определению - среднее арифметическое квадратов отклонений от среднего арифмитического&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var variance = gtl.add_value_var( фильтр );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.name = &amp;quot;Var&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени измерения дисперсии;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.time = 0.5;&amp;lt;/code&amp;gt; - интервал расчета дисперсии, сек;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.avg_cnt = 4;&amp;lt;/code&amp;gt; - количество отсчетов для усреднения;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.value;&amp;lt;/code&amp;gt; - расчетное значение дисперсии;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;variance.values;&amp;lt;/code&amp;gt; - массив, содержащий указанное количество отсчетов для усреднения;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед расчетом дисперсии&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //назначение переменной для фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)&lt;br /&gt;
filter.order = 10; //порядок фильтра&lt;br /&gt;
filter.frequency = 6400; //центральная частота полосового фильтра&lt;br /&gt;
filter.width = 1482; //ширина полосы фильтра&lt;br /&gt;
&lt;br /&gt;
//определение дисперсии значения в 1/3 октавной полосе&lt;br /&gt;
var variance = gtl.add_value_var(filter); //объявление переменной дисперсии&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 5; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  gtl.log.info(&amp;quot;Дисперсия в диапазоне&amp;quot;, variance.value);&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1329</id>
		<title>Gtl.create moving thresh</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_moving_thresh&amp;diff=1329"/>
		<updated>2026-03-09T23:50:47Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для фиксации превышений максимального значения параметра в указанном временном интервале наблюдения. Применяется для контроля стабильного превышения параметрами установленного порога в течение указанного времени.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var thresh = gtl.gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src: gtl.analog_inputs[0],&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time: 0.1,&lt;br /&gt;
      level: 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.name = &amp;quot;thresh&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени параметру;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.time = 0.1;&amp;lt;/code&amp;gt; - временной интервал наблюдения, в течение которого должно фиксироваться постоянное превышение порога, сек.;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.level = 0.5;&amp;lt;/code&amp;gt; - пороговый уровень для параметра, при превышении которого фиксируется превышение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;thresh.triggered.connect();&amp;lt;/code&amp;gt; - слот для подключения функции обработки результата;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var thresh = gtl.create_moving_thresh(&lt;br /&gt;
    {&lt;br /&gt;
      src : gtl.analog_inputs[0],&lt;br /&gt;
      name : &amp;quot;thresh&amp;quot;,&lt;br /&gt;
      time : 0.001,&lt;br /&gt;
      level : 0.5&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
thresh.triggered.connect(thresh_triggered_event);&lt;br /&gt;
&lt;br /&gt;
let cnt = 0;&lt;br /&gt;
&lt;br /&gt;
function thresh_triggered_event(flag, sample)&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;tresh trigger&amp;quot;, flag);&lt;br /&gt;
&lt;br /&gt;
  if(flag)&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
  else&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger off time&amp;quot;, sample/thresh.rate);&lt;br /&gt;
&lt;br /&gt;
  cnt++;&lt;br /&gt;
&lt;br /&gt;
  if(cnt == 6)&lt;br /&gt;
    gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1328</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1328"/>
		<updated>2026-02-28T16:28:06Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_iir( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_iir.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_iir.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации&lt;br /&gt;
 * с целью выделения заданных частотных диапазонов. Используется при проведении различных&lt;br /&gt;
 * видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_iir&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`).&lt;br /&gt;
 * @returns {IirFilter} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_iir(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_iir.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_iir.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 *&lt;br /&gt;
 * // Для полосового фильтра дополнительно задаём ширину полосы&lt;br /&gt;
 * filter.type = gtl.filter_iir.bandpass;&lt;br /&gt;
 * filter.width = 1250;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_iir = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра, созданный через `gtl.add_filter_iir`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IirFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции (аппроксимации) фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.bessel` — фильтр Бесселя;&lt;br /&gt;
 *   - `gtl.filter_iir.butterworth` — фильтр Баттерворта;&lt;br /&gt;
 *   - `gtl.filter_iir.chebyshev1` — фильтр Чебышева I типа;&lt;br /&gt;
 *   - `gtl.filter_iir.chebyshev2` — фильтр Чебышева II типа;&lt;br /&gt;
 *   - `gtl.filter_iir.elliptic` — эллиптический фильтр;&lt;br /&gt;
 *   - `gtl.filter_iir.legendre` — фильтр Лежандра;&lt;br /&gt;
 *   - `gtl.filter_iir.rbj` — фильтр по методике Роберта Бристау;&lt;br /&gt;
 *   - `gtl.filter_iir.undef` — тип не определён.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра по частотной избирательности. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.lowpass` — фильтр нижних частот (ФНЧ): пропускает частоты ниже `frequency`;&lt;br /&gt;
 *   - `gtl.filter_iir.highpass` — фильтр верхних частот (ФВЧ): пропускает частоты выше `frequency`;&lt;br /&gt;
 *   - `gtl.filter_iir.bandpass` — полосовой фильтр: пропускает частоты в диапазоне&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада амплитудно‑частотной&lt;br /&gt;
 *   характеристики (АЧХ) за пределами полосы пропускания. Типичные значения: 2–8.&lt;br /&gt;
 *   Высокий порядок даёт более крутой спад, но может вызвать фазовые искажения.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1327</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1327"/>
		<updated>2026-02-28T16:24:43Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_iir( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_iir.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_iir.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации&lt;br /&gt;
 * с целью выделения заданных частотных диапазонов. Используется при проведении различных&lt;br /&gt;
 * видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_iir&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`) или массив данных для фильтрации.&lt;br /&gt;
 * @returns {IirFilter} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_iir(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_iir.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_iir.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 *&lt;br /&gt;
 * // Для полосового фильтра дополнительно задаём ширину полосы&lt;br /&gt;
 * filter.type = gtl.filter_iir.bandpass;&lt;br /&gt;
 * filter.width = 1250;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_iir = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра, созданный через `gtl.add_filter_iir`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IirFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции (аппроксимации) фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.bessel` — фильтр Бесселя;&lt;br /&gt;
 *   - `gtl.filter_iir.butterworth` — фильтр Баттерворта;&lt;br /&gt;
 *   - `gtl.filter_iir.chebyshev1` — фильтр Чебышева I типа;&lt;br /&gt;
 *   - `gtl.filter_iir.chebyshev2` — фильтр Чебышева II типа;&lt;br /&gt;
 *   - `gtl.filter_iir.elliptic` — эллиптический фильтр;&lt;br /&gt;
 *   - `gtl.filter_iir.legendre` — фильтр Лежандра;&lt;br /&gt;
 *   - `gtl.filter_iir.rbj` — фильтр по методике Роберта Бристау;&lt;br /&gt;
 *   - `gtl.filter_iir.undef` — тип не определён.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра по частотной избирательности. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.lowpass` — фильтр нижних частот (ФНЧ): пропускает частоты ниже `frequency`;&lt;br /&gt;
 *   - `gtl.filter_iir.highpass` — фильтр верхних частот (ФВЧ): пропускает частоты выше `frequency`;&lt;br /&gt;
 *   - `gtl.filter_iir.bandpass` — полосовой фильтр: пропускает частоты в диапазоне&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада амплитудно‑частотной&lt;br /&gt;
 *   характеристики (АЧХ) за пределами полосы пропускания. Типичные значения: 2–8.&lt;br /&gt;
 *   Высокий порядок даёт более крутой спад, но может вызвать фазовые искажения.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1326</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1326"/>
		<updated>2026-02-28T16:22:47Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_iir( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_iir.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_iir.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр бесконечной импульсной характеристики (IIR) для обработки сигнала вибрации&lt;br /&gt;
 * с целью выделения заданных частотных диапазонов. Используется при проведении различных&lt;br /&gt;
 * видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_iir&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`) или массив данных для фильтрации.&lt;br /&gt;
 * @returns {IirFilter} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_iir(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_iir.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_iir.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 *&lt;br /&gt;
 * // Для полосового фильтра дополнительно задаём ширину полосы&lt;br /&gt;
 * filter.type = gtl.filter_iir.bandpass;&lt;br /&gt;
 * filter.width = 1250;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_iir = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра бесконечной импульсной характеристики (IIR), созданный через `gtl.add_filter_iir`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IirFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции (аппроксимации) фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.bessel` — фильтр Бесселя;&lt;br /&gt;
 *   - `gtl.filter_iir.butterworth` — фильтр Баттерворта;&lt;br /&gt;
 *   - `gtl.filter_iir.chebyshev1` — фильтр Чебышева I типа;&lt;br /&gt;
 *   - `gtl.filter_iir.chebyshev2` — фильтр Чебышева II типа;&lt;br /&gt;
 *   - `gtl.filter_iir.elliptic` — эллиптический фильтр;&lt;br /&gt;
 *   - `gtl.filter_iir.legendre` — фильтр Лежандра;&lt;br /&gt;
 *   - `gtl.filter_iir.rbj` — фильтр по методике Роберта Бристау;&lt;br /&gt;
 *   - `gtl.filter_iir.undef` — тип не определён.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра по частотной избирательности. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.lowpass` — фильтр нижних частот (ФНЧ): пропускает частоты ниже `frequency`;&lt;br /&gt;
 *   - `gtl.filter_iir.highpass` — фильтр верхних частот (ФВЧ): пропускает частоты выше `frequency`;&lt;br /&gt;
 *   - `gtl.filter_iir.bandpass` — полосовой фильтр: пропускает частоты в диапазоне&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада амплитудно‑частотной&lt;br /&gt;
 *   характеристики (АЧХ) за пределами полосы пропускания. Типичные значения: 2–8.&lt;br /&gt;
 *   Высокий порядок даёт более крутой спад, но может вызвать фазовые искажения.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1325</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1325"/>
		<updated>2026-02-28T16:10:20Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_iir( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_iir.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_iir.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации с целью выделения заданных частотных диапазонов.&lt;br /&gt;
 * Используется при проведении различных видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_iir&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`).&lt;br /&gt;
 * @returns {Object} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_iir(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_iir.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_iir.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_iir = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра, созданный через `gtl.add_filter_iir`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IrrFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.kind.bessel`&lt;br /&gt;
 *   - `gtl.filter_iir.kind.butterworth` (по умолчанию)&lt;br /&gt;
 *   - `gtl.filter_iir.kind.chebyshev1`&lt;br /&gt;
 *   - `gtl.filter_iir.kind.chebyshev2`&lt;br /&gt;
 *   - `gtl.filter_iir.kind.elliptic`&lt;br /&gt;
 *   - `gtl.filter_iir.kind.legendre`&lt;br /&gt;
 *   - `gtl.filter_iir.kind.rbj`&lt;br /&gt;
 *   - `gtl.filter_iir.kind.undef`&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_iir.type.lowpass` — фильтр нижних частот (ФНЧ)&lt;br /&gt;
 *   - `gtl.filter_iir.type.highpass` — фильтр верхних частот (ФВЧ)&lt;br /&gt;
 *   - `gtl.filter_iir.type.bandpass` — полосовой фильтр&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада АЧХ.&lt;br /&gt;
 *   Типичные значения: $2$–$8$.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1324</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1324"/>
		<updated>2026-02-28T16:06:56Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Объявление функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_iir( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_irr.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_irr.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации с целью выделения заданных частотных диапазонов.&lt;br /&gt;
 * Используется при проведении различных видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_irr&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`).&lt;br /&gt;
 * @returns {Object} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_irr(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_irr.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_irr.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_irr = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра, созданный через `gtl.add_filter_irr`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IrrFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.bessel`&lt;br /&gt;
 *   - `gtl.filter_irr.butterworth` (по умолчанию)&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev1`&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev2`&lt;br /&gt;
 *   - `gtl.filter_irr.elliptic`&lt;br /&gt;
 *   - `gtl.filter_irr.legendre`&lt;br /&gt;
 *   - `gtl.filter_irr.rbj`&lt;br /&gt;
 *   - `gtl.filter_irr.undef`&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.lowpass` — фильтр нижних частот (ФНЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.highpass` — фильтр верхних частот (ФВЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.bandpass` — полосовой фильтр&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада АЧХ.&lt;br /&gt;
 *   Типичные значения: $2$–$8$.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_spen&amp;diff=1323</id>
		<title>Gtl.add spen</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_spen&amp;diff=1323"/>
		<updated>2026-02-28T16:06:24Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SPEN_db.png|thumb|Спектр огибающей вибрации в дБ]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для построения спектра огибающей высокочастотной вибрации в отфильтрованном диапазоне. Необходима при проведении анализа колебаний мощности составляющих высокочастотной вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var spen = gtl.create_spen(&lt;br /&gt;
    {&lt;br /&gt;
      src: gtl.analog_inputs[0],&lt;br /&gt;
      frequency: 1000,&lt;br /&gt;
      resolution: 1,&lt;br /&gt;
      average: 3,&lt;br /&gt;
      overlap: .5,&lt;br /&gt;
      window: gtl.spec.rectangular,&lt;br /&gt;
      view: gtl.spec.db&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.frequency = 1000;&amp;lt;/code&amp;gt; - граничная частота спектра огибающей, Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.resolution = 1;&amp;lt;/code&amp;gt; - частотное разрешение (frequency / lines), Гц/линия;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.average = 3;&amp;lt;/code&amp;gt; - количество отсчетов для усреднения;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.overlap = 0.5;&amp;lt;/code&amp;gt; - коэффициент перекрытия;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.window = gtl.spec.rectangular;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rectangular;&lt;br /&gt;
cosin;&lt;br /&gt;
hann;&lt;br /&gt;
bartlett_hann;&lt;br /&gt;
hamming;&lt;br /&gt;
blackman;&lt;br /&gt;
blackman_harris;&lt;br /&gt;
flattop;&lt;br /&gt;
half_rect;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.view = gtl.spec.db;&amp;lt;/code&amp;gt; - единица измерения амплитуды;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db;&lt;br /&gt;
unit;&lt;br /&gt;
rms;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.acq_time;&amp;lt;/code&amp;gt; - время, необходимое для расчета спектра огибающей;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.input_data;&amp;lt;/code&amp;gt; - массив входных значений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.data;&amp;lt;/code&amp;gt; - массив значений амплитуд составляющих сигнала в спектре огибающей;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.real;&amp;lt;/code&amp;gt; - массив действительных значений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;spen.imag;&amp;lt;/code&amp;gt; - массив мнимых значений;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация участка сигнала для формирования спектра огибающей&lt;br /&gt;
var filter_spen = gtl.add_filter_iir(gtl.analog_inputs[0]); //назначение переменной для фильтра&lt;br /&gt;
filter_spen.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter_spen.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)&lt;br /&gt;
filter_spen.order = 10; //порядок фильтра&lt;br /&gt;
filter_spen.frequency = 6400; //центральная частота полосового фильтра&lt;br /&gt;
filter_spen.width = 1482; //ширина полосы фильтра&lt;br /&gt;
&lt;br /&gt;
//построение спектра огибающей в узком диапазоне&lt;br /&gt;
var spen = gtl.create_spen(&lt;br /&gt;
    {&lt;br /&gt;
        src: filter_spen,&lt;br /&gt;
        frequency: 400,&lt;br /&gt;
        resolution: 0.25,&lt;br /&gt;
        average: 8,&lt;br /&gt;
        overlap: 0,&lt;br /&gt;
        window: gtl.spec.rectangular,&lt;br /&gt;
        view: gtl.spec.db&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Спектр огибающей&amp;quot;);&lt;br /&gt;
gtl.diagnostic.interval = spen.acq_time;&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
    plot.add(&lt;br /&gt;
        {&lt;br /&gt;
            color: 0x00ff0000,&lt;br /&gt;
            name: &amp;quot;SPEN&amp;quot;,&lt;br /&gt;
            x: spen.resolution,&lt;br /&gt;
            y: spen.data&lt;br /&gt;
        }&lt;br /&gt;
    ); //рисуем спектр огибающей на plot&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1322</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1322"/>
		<updated>2026-02-28T15:07:49Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_irr( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_irr.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_irr.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации с целью выделения заданных частотных диапазонов.&lt;br /&gt;
 * Используется при проведении различных видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_irr&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`).&lt;br /&gt;
 * @returns {Object} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_irr(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_irr.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_irr.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_irr = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра, созданный через `gtl.add_filter_irr`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IrrFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.bessel`&lt;br /&gt;
 *   - `gtl.filter_irr.butterworth` (по умолчанию)&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev1`&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev2`&lt;br /&gt;
 *   - `gtl.filter_irr.elliptic`&lt;br /&gt;
 *   - `gtl.filter_irr.legendre`&lt;br /&gt;
 *   - `gtl.filter_irr.rbj`&lt;br /&gt;
 *   - `gtl.filter_irr.undef`&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.lowpass` — фильтр нижних частот (ФНЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.highpass` — фильтр верхних частот (ФВЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.bandpass` — полосовой фильтр&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада АЧХ.&lt;br /&gt;
 *   Типичные значения: $2$–$8$.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1321</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1321"/>
		<updated>2026-02-28T15:06:40Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_irr( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_irr.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_irr.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации с целью выделения заданных частотных диапазонов.&lt;br /&gt;
 * Используется при проведении различных видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_irr&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`) или массив данных для фильтрации.&lt;br /&gt;
 * @returns {Object} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_irr(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_irr.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_irr.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_irr = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра, созданный через `gtl.add_filter_irr`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IrrFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.bessel`&lt;br /&gt;
 *   - `gtl.filter_irr.butterworth` (по умолчанию)&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev1`&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev2`&lt;br /&gt;
 *   - `gtl.filter_irr.elliptic`&lt;br /&gt;
 *   - `gtl.filter_irr.legendre`&lt;br /&gt;
 *   - `gtl.filter_irr.rbj`&lt;br /&gt;
 *   - `gtl.filter_irr.undef`&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.lowpass` — фильтр нижних частот (ФНЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.highpass` — фильтр верхних частот (ФВЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.bandpass` — полосовой фильтр&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада АЧХ.&lt;br /&gt;
 *   Типичные значения: $2$–$8$.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1320</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1320"/>
		<updated>2026-02-28T15:00:48Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_irr( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_irr.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_irr.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации с целью выделения заданных частотных диапазонов.&lt;br /&gt;
 * Используется при проведении различных видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_irr&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`) или массив данных для фильтрации.&lt;br /&gt;
 * @returns {Object} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_irr(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_irr.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_irr.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_irr = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра бесконечной импульсной характеристики (IIR), созданный через `gtl.add_filter_irr`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IirFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.bessel`&lt;br /&gt;
 *   - `gtl.filter_irr.butterworth` (по умолчанию)&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev1`&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev2`&lt;br /&gt;
 *   - `gtl.filter_irr.elliptic`&lt;br /&gt;
 *   - `gtl.filter_irr.legendre`&lt;br /&gt;
 *   - `gtl.filter_irr.rbj`&lt;br /&gt;
 *   - `gtl.filter_irr.undef`&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.lowpass` — фильтр нижних частот (ФНЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.highpass` — фильтр верхних частот (ФВЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.bandpass` — полосовой фильтр&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада АЧХ.&lt;br /&gt;
 *   Типичные значения: $2$–$8$.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1319</id>
		<title>Gtl.add filter irr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_filter_irr&amp;diff=1319"/>
		<updated>2026-02-28T15:00:24Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:LPF.png|thumb|lowpass]]&lt;br /&gt;
[[File:HPF.png|thumb|highpass]]&lt;br /&gt;
[[File:BPF.png|thumb|bandpass]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;var filter = gtl.add_filter_irr( один из аналоговых входов );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.kind = gtl.filter_irr.butterworth;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bessel;&lt;br /&gt;
butterworth;&lt;br /&gt;
chebyshev1,&lt;br /&gt;
chebyshev2,&lt;br /&gt;
elliptic,&lt;br /&gt;
legendre,&lt;br /&gt;
rbj,&lt;br /&gt;
undef. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.type = gtl.filter_irr.lowpass;&amp;lt;/code&amp;gt; - тип фильтра;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lowpass;&lt;br /&gt;
highpass;&lt;br /&gt;
bandpass. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.order = 4;&amp;lt;/code&amp;gt; - порядок фильтра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.frequency = 3000;&amp;lt;/code&amp;gt; - граничная частота фильтра (для полосового фильтра - центральная частота), Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;filter.width = 1250;&amp;lt;/code&amp;gt; - ширина полосы фильтра (для полосового фильтра), Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//фильтрация сигнала перед определением частоты вращения из сигнала&lt;br /&gt;
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра&lt;br /&gt;
filter.kind = gtl.filter_iir.butterworth; //тип окна&lt;br /&gt;
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)&lt;br /&gt;
filter.order = 8; //порядок фильтра&lt;br /&gt;
filter.frequency = 10; //граничная частота фильтра&lt;br /&gt;
&lt;br /&gt;
//определение частоты вращения&lt;br /&gt;
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения&lt;br /&gt;
freq.time = 1; //время выборки&lt;br /&gt;
freq.avg_cnt = 6; //количество усреднений&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики&lt;br /&gt;
&lt;br /&gt;
function diagnose() {&lt;br /&gt;
gtl.log.info(&amp;quot;Частота вращения&amp;quot;, freq.value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
/**&lt;br /&gt;
 * Создаёт фильтр для обработки сигнала вибрации с целью выделения заданных частотных диапазонов.&lt;br /&gt;
 * Используется при проведении различных видов анализа вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @function gtl.add_filter_irr&lt;br /&gt;
 * @param {number|Array&amp;lt;number&amp;gt;} analogInput&lt;br /&gt;
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`) или массив данных для фильтрации.&lt;br /&gt;
 * @returns {Object} Объект фильтра с настройками и свойствами для фильтрации сигнала.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Создание фильтра для первого аналогового входа&lt;br /&gt;
 * var filter = gtl.add_filter_irr(gtl.analog_inputs[0]);&lt;br /&gt;
 *&lt;br /&gt;
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц&lt;br /&gt;
 * filter.kind = gtl.filter_irr.butterworth;&lt;br /&gt;
 * filter.type = gtl.filter_irr.lowpass;&lt;br /&gt;
 * filter.order = 4;&lt;br /&gt;
 * filter.frequency = 3000;&lt;br /&gt;
 */&lt;br /&gt;
gtl.add_filter_irr = function(analogInput) {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Объект фильтра бесконечной импульсной характеристики (IIR), созданный через `gtl.add_filter_irr`.&lt;br /&gt;
 * Позволяет настраивать параметры фильтрации сигнала вибрации.&lt;br /&gt;
 *&lt;br /&gt;
 * @typedef {Object} IirFilter&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} kind&lt;br /&gt;
 *   Тип оконной функции фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.bessel`&lt;br /&gt;
 *   - `gtl.filter_irr.butterworth` (по умолчанию)&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev1`&lt;br /&gt;
 *   - `gtl.filter_irr.chebyshev2`&lt;br /&gt;
 *   - `gtl.filter_irr.elliptic`&lt;br /&gt;
 *   - `gtl.filter_irr.legendre`&lt;br /&gt;
 *   - `gtl.filter_irr.rbj`&lt;br /&gt;
 *   - `gtl.filter_irr.undef`&lt;br /&gt;
 *&lt;br /&gt;
 * @property {string} type&lt;br /&gt;
 *   Тип фильтра. Допустимые значения:&lt;br /&gt;
 *   - `gtl.filter_irr.lowpass` — фильтр нижних частот (ФНЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.highpass` — фильтр верхних частот (ФВЧ)&lt;br /&gt;
 *   - `gtl.filter_irr.bandpass` — полосовой фильтр&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} order&lt;br /&gt;
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада АЧХ.&lt;br /&gt;
 *   Типичные значения: $2$–$8$.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} frequency&lt;br /&gt;
 *   Граничная частота фильтра в герцах (Гц):&lt;br /&gt;
 *   - для ФНЧ и ФВЧ — частота среза;&lt;br /&gt;
 *   - для полосового фильтра — центральная частота полосы пропускания.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} [width]&lt;br /&gt;
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).&lt;br /&gt;
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.&lt;br /&gt;
 */&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1318</id>
		<title>Gtld common info</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1318"/>
		<updated>2026-02-28T14:45:23Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функции данного раздела предназначены для подготовки данных перед запуском основной функции диагностики, содержащей в себе логику постановки автоматического диагноза.&lt;br /&gt;
&lt;br /&gt;
== Источник сигнала вибрации ==&lt;br /&gt;
Источником сигнала вибрации является массив аналоговых входов, позволяющий принимать данные из определенных каналов АЦП, и передавать их в другие объекты. На выходе получаем поток данных оцифрованного сигнала вибрации.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[i]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i - индекс аналогового входа (выходить индексом за пределы доступных аналоговых входов не рекомендуется)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Количество доступных аналоговых входов можно проверить следующим образом:&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs.length;&amp;lt;/code&amp;gt;   &lt;br /&gt;
Если требуется представить результаты измерения спектров вибрации в относительных единицах (дБ), то необходимо установить соответствующее опорное значение (на примере входа с нулевым индексом):&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[0].reference = 1e-6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 м/c2 = 120 дБ виброускорения (0 дБ = 10-6 м/с2)&lt;br /&gt;
1 мм/c = 120 дБ виброскорости (0 дБ = 10-6 мм/с)&lt;br /&gt;
1 мкм = 120 дБ вибросмещения (0 дБ = 10-6 мкм)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Массив аналоговых входов (`analog_inputs`) объекта `gtl` служит источником&lt;br /&gt;
 * данных о вибрации. Он принимает сигналы с заданных каналов&lt;br /&gt;
 * аналого‑цифрового преобразователя (АЦП) и предоставляет&lt;br /&gt;
 * в виде числового массива для дальнейшей обработки.&lt;br /&gt;
 *&lt;br /&gt;
 * Индекс элемента массива (`i`) напрямую&lt;br /&gt;
 * соответствует номеру канала АЦП (например, `gtl.analog_inputs[0]` —&lt;br /&gt;
 * данные с первого канала).&lt;br /&gt;
 *&lt;br /&gt;
 * Количество доступных аналоговых входов (т.е. общее число каналов АЦП,&lt;br /&gt;
 * из которых можно получать данные) определяется свойством `length`:&lt;br /&gt;
 * `gtl.analog_inputs.length`. Это стандартное свойство массива JavaScript,&lt;br /&gt;
 * возвращающее число элементов в массиве.&lt;br /&gt;
 *&lt;br /&gt;
 * @type {Array&amp;lt;number&amp;gt;}&lt;br /&gt;
 *   Массив числовых значений. Длина массива определяется количеством&lt;br /&gt;
 *   настроенных каналов АЦП.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} length&lt;br /&gt;
 *   Количество доступных аналоговых входов (число каналов АЦП).&lt;br /&gt;
 *   Используется для:&lt;br /&gt;
 *   - проверки общего числа доступных каналов;&lt;br /&gt;
 *   - организации циклов перебора всех каналов;&lt;br /&gt;
 *   - валидации индекса `i` перед обращением к `gtl.analog_inputs[i]`.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Получение данных с третьего канала АЦП&lt;br /&gt;
 * const vibrationData = gtl.analog_inputs[2];&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Проверка количества доступных аналоговых входов&lt;br /&gt;
 * const numInputs = gtl.analog_inputs.length;&lt;br /&gt;
 * gtl.log.info(&amp;quot;Доступно аналоговых входов:&amp;quot;, numInputs);&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @see {@link gtl} Основной объект системы.&lt;br /&gt;
 */&lt;br /&gt;
gtl.analog_inputs;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1317</id>
		<title>Gtld common info</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1317"/>
		<updated>2026-02-28T14:43:49Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функции данного раздела предназначены для подготовки данных перед запуском основной функции диагностики, содержащей в себе логику постановки автоматического диагноза.&lt;br /&gt;
&lt;br /&gt;
== Источник сигнала вибрации ==&lt;br /&gt;
Источником сигнала вибрации является массив аналоговых входов, позволяющий принимать данные из определенных каналов АЦП, и передавать их в другие объекты. На выходе получаем поток данных оцифрованного сигнала вибрации.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[i]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i - индекс аналогового входа (выходить индексом за пределы доступных аналоговых входов не рекомендуется)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Количество доступных аналоговых входов можно проверить следующим образом:&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs.length;&amp;lt;/code&amp;gt;   &lt;br /&gt;
Если требуется представить результаты измерения спектров вибрации в относительных единицах (дБ), то необходимо установить соответствующее опорное значение (на примере входа с нулевым индексом):&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[0].reference = 1e-6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 м/c2 = 120 дБ виброускорения (0 дБ = 10-6 м/с2)&lt;br /&gt;
1 мм/c = 120 дБ виброскорости (0 дБ = 10-6 мм/с)&lt;br /&gt;
1 мкм = 120 дБ вибросмещения (0 дБ = 10-6 мкм)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Массив аналоговых входов (`analog_inputs`) объекта `gtl` служит источником&lt;br /&gt;
 * данных о вибрации. Он принимает сигналы с заданных каналов&lt;br /&gt;
 * аналого‑цифрового преобразователя (АЦП) и предоставляет&lt;br /&gt;
 * в виде числового массива для дальнейшей обработки.&lt;br /&gt;
 *&lt;br /&gt;
 * Индекс элемента массива (`i`) напрямую&lt;br /&gt;
 * соответствует номеру канала АЦП (например, `gtl.analog_inputs[0]` —&lt;br /&gt;
 * данные с первого канала).&lt;br /&gt;
 *&lt;br /&gt;
 * Количество доступных аналоговых входов (т. е. общее число каналов АЦП,&lt;br /&gt;
 * из которых можно получать данные) определяется свойством `length`:&lt;br /&gt;
 * `gtl.analog_inputs.length`. Это стандартное свойство массива JavaScript,&lt;br /&gt;
 * возвращающее число элементов в массиве.&lt;br /&gt;
 *&lt;br /&gt;
 * @type {Array&amp;lt;number&amp;gt;}&lt;br /&gt;
 *   Массив числовых значений. Длина массива определяется количеством&lt;br /&gt;
 *   настроенных каналов АЦП.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} length&lt;br /&gt;
 *   Количество доступных аналоговых входов (число каналов АЦП).&lt;br /&gt;
 *   Используется для:&lt;br /&gt;
 *   - проверки общего числа доступных каналов;&lt;br /&gt;
 *   - организации циклов перебора всех каналов;&lt;br /&gt;
 *   - валидации индекса `i` перед обращением к `gtl.analog_inputs[i]`.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Получение данных с третьего канала АЦП&lt;br /&gt;
 * const vibrationData = gtl.analog_inputs[2];&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Проверка количества доступных аналоговых входов&lt;br /&gt;
 * const numInputs = gtl.analog_inputs.length;&lt;br /&gt;
 * gtl.log.info(&amp;quot;Доступно аналоговых входов:&amp;quot;, numInputs);&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @see {@link gtl} Основной объект системы.&lt;br /&gt;
 */&lt;br /&gt;
gtl.analog_inputs;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1316</id>
		<title>Gtld common info</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1316"/>
		<updated>2026-02-28T14:40:42Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функции данного раздела предназначены для подготовки данных перед запуском основной функции диагностики, содержащей в себе логику постановки автоматического диагноза.&lt;br /&gt;
&lt;br /&gt;
== Источник сигнала вибрации ==&lt;br /&gt;
Источником сигнала вибрации является массив аналоговых входов, позволяющий принимать данные из определенных каналов АЦП, и передавать их в другие объекты. На выходе получаем поток данных оцифрованного сигнала вибрации.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[i]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i - индекс аналогового входа (выходить индексом за пределы доступных аналоговых входов не рекомендуется)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Количество доступных аналоговых входов можно проверить следующим образом:&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs.length;&amp;lt;/code&amp;gt;   &lt;br /&gt;
Если требуется представить результаты измерения спектров вибрации в относительных единицах (дБ), то необходимо установить соответствующее опорное значение (на примере входа с нулевым индексом):&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[0].reference = 1e-6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 м/c2 = 120 дБ виброускорения (0 дБ = 10-6 м/с2)&lt;br /&gt;
1 мм/c = 120 дБ виброскорости (0 дБ = 10-6 мм/с)&lt;br /&gt;
1 мкм = 120 дБ вибросмещения (0 дБ = 10-6 мкм)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Массив аналоговых входов (`analog_inputs`) объекта `gtl` служит источником&lt;br /&gt;
 * данных о вибрации. Он принимает сигналы с заданных каналов&lt;br /&gt;
 * аналого‑цифрового преобразователя (АЦП) и предоставляет&lt;br /&gt;
 * в виде числового массива для дальнейшей обработки.&lt;br /&gt;
 *&lt;br /&gt;
 * Каждый элемент массива — это последнее полученное значение сигнала вибрации&lt;br /&gt;
 * с соответствующего канала АЦП. Индекс элемента массива (`i`) напрямую&lt;br /&gt;
 * соответствует номеру канала АЦП (например, `gtl.analog_inputs[0]` —&lt;br /&gt;
 * данные с первого канала).&lt;br /&gt;
 *&lt;br /&gt;
 * Количество доступных аналоговых входов (т. е. общее число каналов АЦП,&lt;br /&gt;
 * из которых можно получать данные) определяется свойством `length`:&lt;br /&gt;
 * `gtl.analog_inputs.length`. Это стандартное свойство массива JavaScript,&lt;br /&gt;
 * возвращающее число элементов в массиве.&lt;br /&gt;
 *&lt;br /&gt;
 * @type {Array&amp;lt;number&amp;gt;}&lt;br /&gt;
 *   Массив числовых значений. Длина массива определяется количеством&lt;br /&gt;
 *   настроенных каналов АЦП.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} length&lt;br /&gt;
 *   Количество доступных аналоговых входов (число каналов АЦП).&lt;br /&gt;
 *   Используется для:&lt;br /&gt;
 *   - проверки общего числа доступных каналов;&lt;br /&gt;
 *   - организации циклов перебора всех каналов;&lt;br /&gt;
 *   - валидации индекса `i` перед обращением к `gtl.analog_inputs[i]`.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Получение данных с третьего канала АЦП&lt;br /&gt;
 * const vibrationData = gtl.analog_inputs[2];&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Проверка количества доступных аналоговых входов&lt;br /&gt;
 * const numInputs = gtl.analog_inputs.length;&lt;br /&gt;
 * gtl.log.info(&amp;quot;Доступно аналоговых входов:&amp;quot;, numInputs);&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @see {@link gtl} Основной объект системы.&lt;br /&gt;
 */&lt;br /&gt;
gtl.analog_inputs;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1315</id>
		<title>Gtld common info</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1315"/>
		<updated>2026-02-28T14:35:21Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функции данного раздела предназначены для подготовки данных перед запуском основной функции диагностики, содержащей в себе логику постановки автоматического диагноза.&lt;br /&gt;
&lt;br /&gt;
== Источник сигнала вибрации ==&lt;br /&gt;
Источником сигнала вибрации является массив аналоговых входов, позволяющий принимать данные из определенных каналов АЦП, и передавать их в другие объекты. На выходе получаем поток данных оцифрованного сигнала вибрации.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[i]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i - индекс аналогового входа (выходить индексом за пределы доступных аналоговых входов не рекомендуется)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Количество доступных аналоговых входов можно проверить следующим образом:&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs.length;&amp;lt;/code&amp;gt;   &lt;br /&gt;
Если требуется представить результаты измерения спектров вибрации в относительных единицах (дБ), то необходимо установить соответствующее опорное значение (на примере входа с нулевым индексом):&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[0].reference = 1e-6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 м/c2 = 120 дБ виброускорения (0 дБ = 10-6 м/с2)&lt;br /&gt;
1 мм/c = 120 дБ виброскорости (0 дБ = 10-6 мм/с)&lt;br /&gt;
1 мкм = 120 дБ вибросмещения (0 дБ = 10-6 мкм)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Массив аналоговых входов (`analog_inputs`) объекта `gtl` служит источником&lt;br /&gt;
 * данных о вибрации. Он принимает сырые аналоговые сигналы с заданных каналов&lt;br /&gt;
 * аналого‑цифрового преобразователя (АЦП), оцифровывает их и предоставляет&lt;br /&gt;
 * в виде числового массива для дальнейшей обработки.&lt;br /&gt;
 *&lt;br /&gt;
 * Каждый элемент массива — это последнее полученное значение сигнала вибрации&lt;br /&gt;
 * с соответствующего канала АЦП. Индекс элемента массива (`i`) напрямую&lt;br /&gt;
 * соответствует номеру канала АЦП (например, `gtl.analog_inputs[0]` —&lt;br /&gt;
 * данные с первого канала).&lt;br /&gt;
 *&lt;br /&gt;
 * Количество доступных аналоговых входов (т. е. общее число каналов АЦП,&lt;br /&gt;
 * из которых можно получать данные) определяется свойством `length`:&lt;br /&gt;
 * `gtl.analog_inputs.length`. Это стандартное свойство массива JavaScript,&lt;br /&gt;
 * возвращающее число элементов в массиве.&lt;br /&gt;
 *&lt;br /&gt;
 * @type {Array&amp;lt;number&amp;gt;}&lt;br /&gt;
 *   Массив числовых значений. Длина массива определяется количеством&lt;br /&gt;
 *   настроенных каналов АЦП.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} length&lt;br /&gt;
 *   Количество доступных аналоговых входов (число каналов АЦП).&lt;br /&gt;
 *   Используется для:&lt;br /&gt;
 *   - проверки общего числа доступных каналов;&lt;br /&gt;
 *   - организации циклов перебора всех каналов;&lt;br /&gt;
 *   - валидации индекса `i` перед обращением к `gtl.analog_inputs[i]`.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Получение данных с третьего канала АЦП&lt;br /&gt;
 * const vibrationData = gtl.analog_inputs[2];&lt;br /&gt;
 *&lt;br /&gt;
 * // Перебор всех каналов и вывод данных в консоль&lt;br /&gt;
 * gtl.analog_inputs.forEach((value, channelIndex) =&amp;gt; {&lt;br /&gt;
 *   console.log(`Канал ${channelIndex}: ${value} В`);&lt;br /&gt;
 * });&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Проверка количества доступных аналоговых входов&lt;br /&gt;
 * const numInputs = gtl.analog_inputs.length;&lt;br /&gt;
 * console.log(`Доступно аналоговых входов: ${numInputs}`);&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Безопасное обращение к каналу с проверкой индекса&lt;br /&gt;
 * const targetChannel = 5;&lt;br /&gt;
 * if (targetChannel &amp;lt; gtl.analog_inputs.length) {&lt;br /&gt;
 *   const data = gtl.analog_inputs[targetChannel];&lt;br /&gt;
 *   console.log(`Данные с канала ${targetChannel}: ${data}`);&lt;br /&gt;
 * } else {&lt;br /&gt;
 *   console.error(`Канал ${targetChannel} недоступен. Максимум: ${gtl.analog_inputs.length - 1}`);&lt;br /&gt;
 * }&lt;br /&gt;
 *&lt;br /&gt;
 * @see {@link gtl} Основной объект системы.&lt;br /&gt;
 */&lt;br /&gt;
gtl.analog_inputs;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1314</id>
		<title>Gtld common info</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1314"/>
		<updated>2026-02-28T14:35:02Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Описание JSDoc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функции данного раздела предназначены для подготовки данных перед запуском основной функции диагностики, содержащей в себе логику постановки автоматического диагноза.&lt;br /&gt;
&lt;br /&gt;
== Источник сигнала вибрации ==&lt;br /&gt;
Источником сигнала вибрации является массив аналоговых входов, позволяющий принимать данные из определенных каналов АЦП, и передавать их в другие объекты. На выходе получаем поток данных оцифрованного сигнала вибрации.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[i]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i - индекс аналогового входа (выходить индексом за пределы доступных аналоговых входов не рекомендуется)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Количество доступных аналоговых входов можно проверить следующим образом:&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs.length;&amp;lt;/code&amp;gt;   &lt;br /&gt;
Если требуется представить результаты измерения спектров вибрации в относительных единицах (дБ), то необходимо установить соответствующее опорное значение (на примере входа с нулевым индексом):&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[0].reference = 1e-6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 м/c2 = 120 дБ виброускорения (0 дБ = 10-6 м/с2)&lt;br /&gt;
1 мм/c = 120 дБ виброскорости (0 дБ = 10-6 мм/с)&lt;br /&gt;
1 мкм = 120 дБ вибросмещения (0 дБ = 10-6 мкм)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Массив аналоговых входов (`analog_inputs`) объекта `gtl` служит источником&lt;br /&gt;
 * данных о вибрации. Он принимает сырые аналоговые сигналы с заданных каналов&lt;br /&gt;
 * аналого‑цифрового преобразователя (АЦП), оцифровывает их и предоставляет&lt;br /&gt;
 * в виде числового массива для дальнейшей обработки.&lt;br /&gt;
 *&lt;br /&gt;
 * Каждый элемент массива — это последнее полученное значение сигнала вибрации&lt;br /&gt;
 * с соответствующего канала АЦП. Индекс элемента массива (`i`) напрямую&lt;br /&gt;
 * соответствует номеру канала АЦП (например, `gtl.analog_inputs[0]` —&lt;br /&gt;
 * данные с первого канала).&lt;br /&gt;
 *&lt;br /&gt;
 * Количество доступных аналоговых входов (т. е. общее число каналов АЦП,&lt;br /&gt;
 * из которых можно получать данные) определяется свойством `length`:&lt;br /&gt;
 * `gtl.analog_inputs.length`. Это стандартное свойство массива JavaScript,&lt;br /&gt;
 * возвращающее число элементов в массиве.&lt;br /&gt;
 *&lt;br /&gt;
 * @type {Array&amp;lt;number&amp;gt;}&lt;br /&gt;
 *   Массив числовых значений. Длина массива определяется количеством&lt;br /&gt;
 *   настроенных каналов АЦП.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} length&lt;br /&gt;
 *   Количество доступных аналоговых входов (число каналов АЦП).&lt;br /&gt;
 *   Используется для:&lt;br /&gt;
 *   - проверки общего числа доступных каналов;&lt;br /&gt;
 *   - организации циклов перебора всех каналов;&lt;br /&gt;
 *   - валидации индекса `i` перед обращением к `gtl.analog_inputs[i]`.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Получение данных с третьего канала АЦП&lt;br /&gt;
 * const vibrationData = gtl.analog_inputs[2];&lt;br /&gt;
 *&lt;br /&gt;
 * // Перебор всех каналов и вывод данных в консоль&lt;br /&gt;
 * gtl.analog_inputs.forEach((value, channelIndex) =&amp;gt; {&lt;br /&gt;
 *   console.log(`Канал ${channelIndex}: ${value} В`);&lt;br /&gt;
 * });&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Проверка количества доступных аналоговых входов&lt;br /&gt;
 * const numInputs = gtl.analog_inputs.length;&lt;br /&gt;
 * console.log(`Доступно аналоговых входов: ${numInputs}`);&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Безопасное обращение к каналу с проверкой индекса&lt;br /&gt;
 * const targetChannel = 5;&lt;br /&gt;
 * if (targetChannel &amp;lt; gtl.analog_inputs.length) {&lt;br /&gt;
 *   const data = gtl.analog_inputs[targetChannel];&lt;br /&gt;
 *   console.log(`Данные с канала ${targetChannel}: ${data}`);&lt;br /&gt;
 * } else {&lt;br /&gt;
 *   console.error(`Канал ${targetChannel} недоступен. Максимум: ${gtl.analog_inputs.length - 1}`);&lt;br /&gt;
 * }&lt;br /&gt;
 *&lt;br /&gt;
 * @see {@link gtl} Основной объект системы.&lt;br /&gt;
 */&lt;br /&gt;
gtl.analog_inputs;&lt;br /&gt;
&amp;lt;pre/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1313</id>
		<title>Gtld common info</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_common_info&amp;diff=1313"/>
		<updated>2026-02-28T14:34:24Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функции данного раздела предназначены для подготовки данных перед запуском основной функции диагностики, содержащей в себе логику постановки автоматического диагноза.&lt;br /&gt;
&lt;br /&gt;
== Источник сигнала вибрации ==&lt;br /&gt;
Источником сигнала вибрации является массив аналоговых входов, позволяющий принимать данные из определенных каналов АЦП, и передавать их в другие объекты. На выходе получаем поток данных оцифрованного сигнала вибрации.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[i]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i - индекс аналогового входа (выходить индексом за пределы доступных аналоговых входов не рекомендуется)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Количество доступных аналоговых входов можно проверить следующим образом:&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs.length;&amp;lt;/code&amp;gt;   &lt;br /&gt;
Если требуется представить результаты измерения спектров вибрации в относительных единицах (дБ), то необходимо установить соответствующее опорное значение (на примере входа с нулевым индексом):&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;gtl.analog_inputs[0].reference = 1e-6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 м/c2 = 120 дБ виброускорения (0 дБ = 10-6 м/с2)&lt;br /&gt;
1 мм/c = 120 дБ виброскорости (0 дБ = 10-6 мм/с)&lt;br /&gt;
1 мкм = 120 дБ вибросмещения (0 дБ = 10-6 мкм)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание JSDoc ==&lt;br /&gt;
/**&lt;br /&gt;
 * Массив аналоговых входов (`analog_inputs`) объекта `gtl` служит источником&lt;br /&gt;
 * данных о вибрации. Он принимает сырые аналоговые сигналы с заданных каналов&lt;br /&gt;
 * аналого‑цифрового преобразователя (АЦП), оцифровывает их и предоставляет&lt;br /&gt;
 * в виде числового массива для дальнейшей обработки.&lt;br /&gt;
 *&lt;br /&gt;
 * Каждый элемент массива — это последнее полученное значение сигнала вибрации&lt;br /&gt;
 * с соответствующего канала АЦП. Индекс элемента массива (`i`) напрямую&lt;br /&gt;
 * соответствует номеру канала АЦП (например, `gtl.analog_inputs[0]` —&lt;br /&gt;
 * данные с первого канала).&lt;br /&gt;
 *&lt;br /&gt;
 * Количество доступных аналоговых входов (т. е. общее число каналов АЦП,&lt;br /&gt;
 * из которых можно получать данные) определяется свойством `length`:&lt;br /&gt;
 * `gtl.analog_inputs.length`. Это стандартное свойство массива JavaScript,&lt;br /&gt;
 * возвращающее число элементов в массиве.&lt;br /&gt;
 *&lt;br /&gt;
 * @type {Array&amp;lt;number&amp;gt;}&lt;br /&gt;
 *   Массив числовых значений. Длина массива определяется количеством&lt;br /&gt;
 *   настроенных каналов АЦП.&lt;br /&gt;
 *&lt;br /&gt;
 * @property {number} length&lt;br /&gt;
 *   Количество доступных аналоговых входов (число каналов АЦП).&lt;br /&gt;
 *   Используется для:&lt;br /&gt;
 *   - проверки общего числа доступных каналов;&lt;br /&gt;
 *   - организации циклов перебора всех каналов;&lt;br /&gt;
 *   - валидации индекса `i` перед обращением к `gtl.analog_inputs[i]`.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Получение данных с третьего канала АЦП&lt;br /&gt;
 * const vibrationData = gtl.analog_inputs[2];&lt;br /&gt;
 *&lt;br /&gt;
 * // Перебор всех каналов и вывод данных в консоль&lt;br /&gt;
 * gtl.analog_inputs.forEach((value, channelIndex) =&amp;gt; {&lt;br /&gt;
 *   console.log(`Канал ${channelIndex}: ${value} В`);&lt;br /&gt;
 * });&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Проверка количества доступных аналоговых входов&lt;br /&gt;
 * const numInputs = gtl.analog_inputs.length;&lt;br /&gt;
 * console.log(`Доступно аналоговых входов: ${numInputs}`);&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * // Безопасное обращение к каналу с проверкой индекса&lt;br /&gt;
 * const targetChannel = 5;&lt;br /&gt;
 * if (targetChannel &amp;lt; gtl.analog_inputs.length) {&lt;br /&gt;
 *   const data = gtl.analog_inputs[targetChannel];&lt;br /&gt;
 *   console.log(`Данные с канала ${targetChannel}: ${data}`);&lt;br /&gt;
 * } else {&lt;br /&gt;
 *   console.error(`Канал ${targetChannel} недоступен. Максимум: ${gtl.analog_inputs.length - 1}`);&lt;br /&gt;
 * }&lt;br /&gt;
 *&lt;br /&gt;
 * @see {@link gtl} Основной объект системы.&lt;br /&gt;
 */&lt;br /&gt;
gtl.analog_inputs;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.add_psd&amp;diff=1312</id>
		<title>Gtl.add psd</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.add_psd&amp;diff=1312"/>
		<updated>2026-02-27T04:11:54Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PSD.png|thumb|Спектр плотности мощности]]&lt;br /&gt;
== Краткое описание ==&lt;br /&gt;
Характеристика сигнала, которая позволяет изучать его составляющие частоты. Эта характеристика позволяет определить, какие частоты присутствуют в сигнале и с какой силой (энергией) они проявляются. Параметр измеряется в единицах мощности на единицу частоты.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var psd = gtl.add_psd(&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;src&amp;quot; : gtl.analog_inputs[0],&lt;br /&gt;
      &amp;quot;name&amp;quot; : &amp;quot;psd&amp;quot;,&lt;br /&gt;
      &amp;quot;color&amp;quot; : 0xff0000,&lt;br /&gt;
      &amp;quot;visible&amp;quot; : true,&lt;br /&gt;
      &amp;quot;freq&amp;quot; : 1000.0,&lt;br /&gt;
      &amp;quot;window&amp;quot; : gtl.spec.rectangular,&lt;br /&gt;
      &amp;quot;resolution&amp;quot; : 1.0,&lt;br /&gt;
      &amp;quot;average&amp;quot; : 1,&lt;br /&gt;
      &amp;quot;overlap&amp;quot; : 0,&lt;br /&gt;
      &amp;quot;units&amp;quot; : gtl.spec.unit&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.src1 = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала (номер измерительного канала или переменная параметра);&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.name = &amp;quot;corr&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени параметру;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.color = 0xff0000;&amp;lt;/code&amp;gt; - цвет линии в формате HEX;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.visible = boolean (true/false);&amp;lt;/code&amp;gt; - отображение параметра;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.freq;&amp;lt;/code&amp;gt; - граничная частота сигнала, Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.window = gtl.spec.rectangular;&amp;lt;/code&amp;gt; - тип окна;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rectangular;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.resolution;&amp;lt;/code&amp;gt; - частотное разрешение, Гц;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.average;&amp;lt;/code&amp;gt; - количество усреднений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.overlap;&amp;lt;/code&amp;gt; - коэффициент перекрытия;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.unit = gtl.spec.unit;&amp;lt;/code&amp;gt; - единица измерения амплитуды;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db;&lt;br /&gt;
unit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;psd.data[50];&amp;lt;/code&amp;gt; - массив результатов вычисления спектральной плотности, А/Гц;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//определение спектральной плотности сигнала&lt;br /&gt;
//если параметры не указывать, то будут использоваться значения по-умолчанию&lt;br /&gt;
//так же изменять значения параметров можно в любом месте скрипта и в любое время&lt;br /&gt;
var psd = gtl.add_psd(&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;src&amp;quot; : gtl.analog_inputs[0],&lt;br /&gt;
      &amp;quot;name&amp;quot; : &amp;quot;psd&amp;quot;,&lt;br /&gt;
      &amp;quot;color&amp;quot; : 0xff0000,&lt;br /&gt;
      &amp;quot;visible&amp;quot; : true,&lt;br /&gt;
      &amp;quot;freq&amp;quot; : 1000.0,&lt;br /&gt;
      &amp;quot;window&amp;quot; : gtl.spec.rectangular,&lt;br /&gt;
      &amp;quot;resolution&amp;quot; : 1.0,&lt;br /&gt;
      &amp;quot;average&amp;quot; : 1,&lt;br /&gt;
      &amp;quot;overlap&amp;quot; : 0,&lt;br /&gt;
      &amp;quot;units&amp;quot; : gtl.spec.unit&lt;br /&gt;
    }&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = psd.acq_time;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;psd&amp;quot;, psd.data[50]);&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:PSD.png&amp;diff=1311</id>
		<title>Файл:PSD.png</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:PSD.png&amp;diff=1311"/>
		<updated>2026-02-27T04:11:46Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Спектр плотности мощности&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Спектр плотности мощности&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1310</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1310"/>
		<updated>2026-02-16T05:15:44Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Краткое описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций, например для пропуска участка сигнала&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Альтернативный способ запуска таймера:&lt;br /&gt;
gtl.set_timeout(9000, my_func); //запуск таймера&lt;br /&gt;
где:&lt;br /&gt;
9000 - время таймера, мс;&lt;br /&gt;
my_func - подключаемая функция;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение функции, вызов ее по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let timer1 = gtl.set_timer(); //устанавливаем таймер&lt;br /&gt;
timer1.start(1000); //запускаем таймер на время 1000 мс&lt;br /&gt;
timer1.timeout.connect(timeout1); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer2 = gtl.set_timer(2000); //устанавливаем время запуска таймера 2000 мс&lt;br /&gt;
timer2.start(); //запускаем таймер&lt;br /&gt;
timer2.timeout.connect(timeout2); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer3 = gtl.set_timer(4000, timeout3); //устанавливаем время запуска таймера 4000 мс и подключаем функцию&lt;br /&gt;
timer3.start(); //запускаем таймер&lt;br /&gt;
&lt;br /&gt;
gtl.set_timeout(9000, single_shot); //запускаем таймер альтернативным способом на 9000 мс&lt;br /&gt;
&lt;br /&gt;
function timeout1() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout1&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout2() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout2&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout3() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout3&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function single_shot() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;single shot&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  timer1.stop(); //останавливаем таймер 1&lt;br /&gt;
  timer2.stop(); //останавливаем таймер 2&lt;br /&gt;
  timer3.stop(); //останавливаем таймер 3&lt;br /&gt;
  &lt;br /&gt;
  gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1309</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1309"/>
		<updated>2026-02-16T05:14:31Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Альтернативный способ запуска таймера:&lt;br /&gt;
gtl.set_timeout(9000, my_func); //запуск таймера&lt;br /&gt;
где:&lt;br /&gt;
9000 - время таймера, мс;&lt;br /&gt;
my_func - подключаемая функция;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение функции, вызов ее по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let timer1 = gtl.set_timer(); //устанавливаем таймер&lt;br /&gt;
timer1.start(1000); //запускаем таймер на время 1000 мс&lt;br /&gt;
timer1.timeout.connect(timeout1); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer2 = gtl.set_timer(2000); //устанавливаем время запуска таймера 2000 мс&lt;br /&gt;
timer2.start(); //запускаем таймер&lt;br /&gt;
timer2.timeout.connect(timeout2); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer3 = gtl.set_timer(4000, timeout3); //устанавливаем время запуска таймера 4000 мс и подключаем функцию&lt;br /&gt;
timer3.start(); //запускаем таймер&lt;br /&gt;
&lt;br /&gt;
gtl.set_timeout(9000, single_shot); //запускаем таймер альтернативным способом на 9000 мс&lt;br /&gt;
&lt;br /&gt;
function timeout1() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout1&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout2() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout2&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout3() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout3&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function single_shot() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;single shot&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  timer1.stop(); //останавливаем таймер 1&lt;br /&gt;
  timer2.stop(); //останавливаем таймер 2&lt;br /&gt;
  timer3.stop(); //останавливаем таймер 3&lt;br /&gt;
  &lt;br /&gt;
  gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1308</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1308"/>
		<updated>2026-02-16T05:14:12Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Альтернативный способ запуска таймера:&lt;br /&gt;
gtl.set_timeout(9000, my_func); //запуск таймера&lt;br /&gt;
где:&lt;br /&gt;
9000 - время таймера, мс;&lt;br /&gt;
my_func - подключаемая функция;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение функции, вызов ее по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let timer1 = gtl.set_timer(); //устанавливаем таймер&lt;br /&gt;
timer1.start(1000); //запускаем таймер на время 1000 мс&lt;br /&gt;
timer1.timeout.connect(timeout1); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer2 = gtl.set_timer(2000); //устанавливаем время запуска таймера 2000 мс&lt;br /&gt;
timer2.start(); //запускаем таймер&lt;br /&gt;
timer2.timeout.connect(timeout2); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer3 = gtl.set_timer(4000, timeout3); //устанавливаем время запуска таймера 4000 мс и подключаем функцию&lt;br /&gt;
timer3.start(); //запускаем таймер&lt;br /&gt;
&lt;br /&gt;
gtl.set_timeout(9000, single_shot); //запускаем таймер альтернативным способом&lt;br /&gt;
&lt;br /&gt;
function timeout1() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout1&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout2() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout2&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout3() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout3&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function single_shot() {&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;single shot&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  timer1.stop(); //останавливаем таймер 1&lt;br /&gt;
  timer2.stop(); //останавливаем таймер 2&lt;br /&gt;
  timer3.stop(); //останавливаем таймер 3&lt;br /&gt;
  &lt;br /&gt;
  gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1307</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1307"/>
		<updated>2026-02-16T05:13:07Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Альтернативный способ запуска таймера:&lt;br /&gt;
gtl.set_timeout(9000, my_func); //запуск таймера&lt;br /&gt;
где:&lt;br /&gt;
9000 - время таймера, мс;&lt;br /&gt;
my_func - подключаемая функция;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение функции, вызов ее по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let timer1 = gtl.set_timer(); //устанавливаем таймер&lt;br /&gt;
timer1.start(1000); //запускаем таймер на время 1000 мс&lt;br /&gt;
timer1.timeout.connect(timeout1); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer2 = gtl.set_timer(2000); //устанавливаем время запуска таймера 2000 мс&lt;br /&gt;
timer2.start(); //запускаем таймер&lt;br /&gt;
timer2.timeout.connect(timeout2); //подключаем функцию&lt;br /&gt;
&lt;br /&gt;
let timer3 = gtl.set_timer(4000, timeout3); //устанавливаем время запуска таймера 4000 мс и подключаем функцию&lt;br /&gt;
timer3.start(); //запускаем таймер&lt;br /&gt;
&lt;br /&gt;
gtl.set_timeout(9000, single_shot); //запускаем таймер альтернативным способом&lt;br /&gt;
&lt;br /&gt;
function timeout1()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout1&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout2()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout2&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function timeout3()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;timeout3&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function single_shot()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;timeout&amp;quot;, &amp;quot;single shot&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  timer1.stop();&lt;br /&gt;
  timer2.stop();&lt;br /&gt;
  timer3.stop();&lt;br /&gt;
  &lt;br /&gt;
  gtl.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1306</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1306"/>
		<updated>2026-02-16T05:08:01Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Объявление функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Альтернативный способ запуска таймера:&lt;br /&gt;
gtl.set_timeout(9000, my_func); //запуск таймера&lt;br /&gt;
где:&lt;br /&gt;
9000 - время таймера, мс;&lt;br /&gt;
my_func - подключаемая функция;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение функции, вызов ее по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1305</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1305"/>
		<updated>2026-02-16T05:07:10Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Объявление функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Существует альтернативный способ запуска таймера вызовом метода gtl.set_timeout(9000, my_func);&lt;br /&gt;
где:&lt;br /&gt;
9000 - время таймера, мс;&lt;br /&gt;
my_func - подключаемая функция;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение функции, вызов ее по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1304</id>
		<title>Gtl.player</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1304"/>
		<updated>2026-02-16T05:03:37Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Краткое описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для управления диапазонами (участками) воспроизведения сигнала вибрации в плеере. Используется в случае необходимости анализа вибрации на конкретных участках сигнала.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Диапазоны различают:&lt;br /&gt;
1. Сохраненные, заданные вручную на графике;&lt;br /&gt;
2. Пользовательские, заданные в скрипте;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Если пользовательские диапазоны не заданы или представляют собой пустой массив, то диапазоны берутся из файла (заданные на графике). Если и они пустые, то воспроизводится весь файл от начала до конца.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let player = gtl.player;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.stored_ranges = [];&amp;lt;/code&amp;gt; - массив диапазонов из файла (заданые вручную на графике). Только чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.custom_ranges = [];&amp;lt;/code&amp;gt; - массив пользовательских диапазонов. Запись/чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_all = true;&amp;lt;/code&amp;gt; - принудительное воспроизведение всего файла. По умолчанию false;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_time;&amp;lt;/code&amp;gt; - расчетное время воспроизведения файла, сек;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Массивы диапазонов представляют собой массивы объектов с указанием левой и правой границы участка в секундах:&lt;br /&gt;
player.custom_ranges = [{min: 1, max: 2}, {min: 10, max: 12}]; //задаем два диапазона&lt;br /&gt;
где:&lt;br /&gt;
min - левая граница диапазона;&lt;br /&gt;
max - правая граница диапазона;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1303</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1303"/>
		<updated>2026-02-16T05:02:32Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение функции, вызов ее по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1302</id>
		<title>Gtl.set timer</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.set_timer&amp;diff=1302"/>
		<updated>2026-02-16T05:00:33Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let timer = gtl.set_timer( время, функция );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.start();&amp;lt;/code&amp;gt; - запуск таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.stop();&amp;lt;/code&amp;gt; - остановка таймера;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;timer.timeout.connect( функция );&amp;lt;/code&amp;gt; - подключение (вызов) функции по истечении времени таймера;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Массивы диапазонов представляют собой массивы объектов с указанием левой и правой границы участка в секундах:&lt;br /&gt;
player.custom_ranges = [{min: 1, max: 2}, {min: 10, max: 12}]; //задаем два диапазона&lt;br /&gt;
где:&lt;br /&gt;
min - левая граница диапазона;&lt;br /&gt;
max - правая граница диапазона;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
</feed>