Gtl.set timer: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
== Краткое описание ==
== Краткое описание ==
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций.
Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций, например для пропуска участка сигнала


== Объявление функции ==
== Объявление функции ==
<pre style="color: purple>
<pre style="color: purple>
let timer = gtl.set_timer( время, функция );
let timer = gtl.set_timer( время, функция );
</pre>
<pre>
Альтернативный способ запуска таймера:
gtl.set_timeout(9000, my_func); //запуск таймера
где:
9000 - время таймера, мс;
my_func - подключаемая функция;
</pre>
</pre>


Строка 14: Строка 22:
== Пример использования ==
== Пример использования ==
<pre>
<pre>
//диапазоны из файла (заданые вручную на графике). только чтение.
let timer1 = gtl.set_timer(); //устанавливаем таймер
let ranges = gtl.player.stored_ranges;
timer1.start(1000); //запускаем таймер на время 1000 мс
timer1.timeout.connect(timeout1); //подключаем функцию
 
let timer2 = gtl.set_timer(2000); //устанавливаем время запуска таймера 2000 мс
timer2.start(); //запускаем таймер
timer2.timeout.connect(timeout2); //подключаем функцию
 
let timer3 = gtl.set_timer(4000, timeout3); //устанавливаем время запуска таймера 4000 мс и подключаем функцию
timer3.start(); //запускаем таймер
 
gtl.set_timeout(9000, single_shot); //запускаем таймер альтернативным способом на 9000 мс
 
function timeout1() {
  gtl.log.info("timeout", "timeout1");
}


//пользовательские диапазоны. запись/чтение
function timeout2() {
//gtl.player.custom_ranges = [];
  gtl.log.info("timeout", "timeout2");
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];
}


//принудительное воспроизведение всего файла. по умолчанию false
function timeout3() {
//gtl.player.play_all = true;
  gtl.log.info("timeout", "timeout3");
}


gtl.diagnostic.interval = 1;
function single_shot() {
function diagnose()
   gtl.log.info("timeout", "single shot");
{
 
   gtl.log.info("ranges", JSON.stringify(ranges));
  timer1.stop(); //останавливаем таймер 1
   gtl.log.info("ranges", JSON.stringify(gtl.player.custom_ranges));
   timer2.stop(); //останавливаем таймер 2
   gtl.log.info("play time", gtl.player.play_time);
  timer3.stop(); //останавливаем таймер 3
};
 
   gtl.stop();
}
</pre>
</pre>

Текущая версия от 05:15, 16 февраля 2026

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

Функция предназначена для установки таймера запуска (отложенного запуска) функций при проведении диагностики. Используется в случае необходимости отсроченного запуска отдельных функций, например для пропуска участка сигнала

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

let timer = gtl.set_timer( время, функция );
Альтернативный способ запуска таймера:
gtl.set_timeout(9000, my_func); //запуск таймера
где:
9000 - время таймера, мс;
my_func - подключаемая функция;

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

timer.start(); - запуск таймера;
timer.stop(); - остановка таймера;
timer.timeout.connect( функция ); - подключение функции, вызов ее по истечении времени таймера;

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

let timer1 = gtl.set_timer(); //устанавливаем таймер
timer1.start(1000); //запускаем таймер на время 1000 мс
timer1.timeout.connect(timeout1); //подключаем функцию

let timer2 = gtl.set_timer(2000); //устанавливаем время запуска таймера 2000 мс
timer2.start(); //запускаем таймер
timer2.timeout.connect(timeout2); //подключаем функцию

let timer3 = gtl.set_timer(4000, timeout3); //устанавливаем время запуска таймера 4000 мс и подключаем функцию
timer3.start(); //запускаем таймер

gtl.set_timeout(9000, single_shot); //запускаем таймер альтернативным способом на 9000 мс

function timeout1() {
  gtl.log.info("timeout", "timeout1");
}

function timeout2() {
  gtl.log.info("timeout", "timeout2");
}

function timeout3() {
  gtl.log.info("timeout", "timeout3");
}

function single_shot() {
  gtl.log.info("timeout", "single shot");
  
  timer1.stop(); //останавливаем таймер 1
  timer2.stop(); //останавливаем таймер 2
  timer3.stop(); //останавливаем таймер 3
  
  gtl.stop();
}