Gtl.player: различия между версиями
Перейти к навигации
Перейти к поиску
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 17: | Строка 17: | ||
:<code style="color: purple>player.custom_ranges = [];</code> - массив пользовательских диапазонов. Запись/чтение; | :<code style="color: purple>player.custom_ranges = [];</code> - массив пользовательских диапазонов. Запись/чтение; | ||
:<code style="color: purple>player.play_all = true;</code> - принудительное воспроизведение всего файла. По умолчанию false; | :<code style="color: purple>player.play_all = true;</code> - принудительное воспроизведение всего файла. По умолчанию false; | ||
:<code style="color: purple>player.play_time;</code> - расчетное время воспроизведения файла, сек; | :<code style="color: purple>player.cyclic = false;</code> - циклическое воспроизведение. По умолчанию true. Плеер запускается сразу после старта скрипта. | ||
:<code style="color: purple>player.play_time = 12;</code> - расчетное время воспроизведения файла, сек; | |||
:<code style="color: purple>player.start();</code> - запуск воспроизведения; | |||
:<code style="color: purple>player.finished.connect(function);</code> - обработчик события окончания воспроизведения; | |||
<pre> | <pre> | ||
| Строка 30: | Строка 33: | ||
== Пример использования == | == Пример использования == | ||
<pre> | <pre> | ||
//диапазоны из файла (заданые | let plot = gtl.plots.add("signals"); | ||
let counter = 0; | |||
gtl.player.finished.connect(finished_playing) | |||
gtl.log.info("cyclic", gtl.player.cyclic); | |||
//циклическое воспроизведение. по умолчанию true. плеер запускается сразу после старта скрипта. | |||
gtl.player.cyclic = false; | |||
// диапазоны из файла (заданые руками на чарте). только чтение. | |||
let ranges = gtl.player.stored_ranges; | let ranges = gtl.player.stored_ranges; | ||
// | gtl.log.info("ranges", JSON.stringify(ranges)); | ||
// диапазоны кастомные. запись/чтение | |||
// логика такая: если кастомные не заданы или пустой массив, то берем из файла. если и они пустые, то воспроизводим весь файл. | |||
//gtl.player.custom_ranges = []; | //gtl.player.custom_ranges = []; | ||
gtl.player.custom_ranges = [{min : | gtl.player.custom_ranges = [{ min: 0, max: .01 }/*, ranges[0]*/]; | ||
gtl.log.info("ranges", JSON.stringify(gtl.player.custom_ranges)); | |||
//принудительное воспроизведение всего файла. по умолчанию false | |||
// принудительное воспроизведение всего файла. по умолчанию false | |||
//gtl.player.play_all = true; | //gtl.player.play_all = true; | ||
gtl. | gtl.log.info("play time", gtl.player.play_time); | ||
function | gtl.analog_inputs[0].history = gtl.player.play_time; | ||
{ | |||
function finished_playing() { | |||
gtl.log.info("playing finished", counter); | |||
plot.add({ | |||
} | color: 0xff0000, | ||
name: "history buffer", | |||
x: 1 / gtl.analog_inputs[0].rate, | |||
y: gtl.analog_inputs[0].getHistoryArray() | |||
}); | |||
plot.axis_at(0).fit(); | |||
counter++; | |||
if (counter == 2) { | |||
gtl.stop(); | |||
return; | |||
} | |||
gtl.player.custom_ranges = [{ min: 0.01, max: .02 }/*, ranges[0]*/]; | |||
gtl.log.info("play time", gtl.player.play_time); | |||
gtl.analog_inputs[0].history = gtl.player.play_time; | |||
gtl.player.start(); | |||
} | |||
</pre> | </pre> | ||
Текущая версия от 06:11, 16 октября 2026
Краткое описание
Функция предназначена для управления диапазонами (участками) воспроизведения сигнала вибрации в плеере. Используется в случае необходимости анализа вибрации на конкретных участках сигнала.
Диапазоны различают: 1. Сохраненные, заданные вручную на графике; 2. Пользовательские, заданные в скрипте;
Если пользовательские диапазоны не заданы или представляют собой пустой массив, то диапазоны берутся из файла (заданные на графике). Если и они пустые, то воспроизводится весь файл от начала до конца.
Объявление функции
let player = gtl.player;
Свойства (методы)
player.stored_ranges = [];- массив диапазонов из файла (заданые вручную на графике). Только чтение;player.custom_ranges = [];- массив пользовательских диапазонов. Запись/чтение;player.play_all = true;- принудительное воспроизведение всего файла. По умолчанию false;player.cyclic = false;- циклическое воспроизведение. По умолчанию true. Плеер запускается сразу после старта скрипта.player.play_time = 12;- расчетное время воспроизведения файла, сек;player.start();- запуск воспроизведения;player.finished.connect(function);- обработчик события окончания воспроизведения;
Примечание:
Массивы диапазонов представляют собой массивы объектов с указанием левой и правой границы участка в секундах:
player.custom_ranges = [{min: 1, max: 2}, {min: 10, max: 12}]; //задаем два диапазона
где:
min - левая граница диапазона;
max - правая граница диапазона;
Пример использования
let plot = gtl.plots.add("signals");
let counter = 0;
gtl.player.finished.connect(finished_playing)
gtl.log.info("cyclic", gtl.player.cyclic);
//циклическое воспроизведение. по умолчанию true. плеер запускается сразу после старта скрипта.
gtl.player.cyclic = false;
// диапазоны из файла (заданые руками на чарте). только чтение.
let ranges = gtl.player.stored_ranges;
gtl.log.info("ranges", JSON.stringify(ranges));
// диапазоны кастомные. запись/чтение
// логика такая: если кастомные не заданы или пустой массив, то берем из файла. если и они пустые, то воспроизводим весь файл.
//gtl.player.custom_ranges = [];
gtl.player.custom_ranges = [{ min: 0, max: .01 }/*, ranges[0]*/];
gtl.log.info("ranges", JSON.stringify(gtl.player.custom_ranges));
// принудительное воспроизведение всего файла. по умолчанию false
//gtl.player.play_all = true;
gtl.log.info("play time", gtl.player.play_time);
gtl.analog_inputs[0].history = gtl.player.play_time;
function finished_playing() {
gtl.log.info("playing finished", counter);
plot.add({
color: 0xff0000,
name: "history buffer",
x: 1 / gtl.analog_inputs[0].rate,
y: gtl.analog_inputs[0].getHistoryArray()
});
plot.axis_at(0).fit();
counter++;
if (counter == 2) {
gtl.stop();
return;
}
gtl.player.custom_ranges = [{ min: 0.01, max: .02 }/*, ranges[0]*/];
gtl.log.info("play time", gtl.player.play_time);
gtl.analog_inputs[0].history = gtl.player.play_time;
gtl.player.start();
}