Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Таймеры

Страниц (1): [1]
 

1. Nathgul - 18 Июня, 2018 - 22:09:25 - перейти к сообщению
Доброго дня... Владимир, на частном обучении вы показывали функцию которая программно закроет кибор при нажатии сочетания клавиш... делался обычный таймер который проверял нажато ли сочетание и close собственно... назовем этот таймер "Выключатель"... вопрос возник следующий... насколько Выключатель будет тормозить скрипт с немалым количеством боков и будет ли вообще его тормозить... ведь ему же придется стартовать практически после каждого блока если например время срабатывания Выключателя поставить 10-20мс вплоть до 1сек... насколько правильно понял таймер срабатывает по времени, но только после завершения функции во время которой он был вызван... например если есть поиск изображения с временем на осуществление поиска, то таймер дождется пока функция поиска закончит свою работу сколько бы это времени ни заняло и потом сработает... или не правильно все понимаю? заранее спасибо.
(Добавление)
если правильно все понял то использование немодальных диалогов упрощает закрытие кибора по нажатию сочетания каких либо клавиш? или снова не прав?
(Добавление)
для немодальных имею ввиду эти настройки диалогов в мастере визуальных диалогов(для просмотра ссылки Вам необходимо авторизоваться)
2. Kibor - 18 Июня, 2018 - 23:46:12 - перейти к сообщению
Добрый..
Таймер работает по времени, а не по участкам кода.
Если стоит в таймере срабатывание 500 мсек, то он будет срабатывать каждые 500 мсек
Это ничего практически если в секунду будет 2 раза проверка клавиш нажатых.
Сам размер кода не важен.
3. Nathgul - 18 Июня, 2018 - 23:57:32 - перейти к сообщению
 Kibor пишет:
Добрый..
Таймер работает по времени, а не по участкам кода.
Если стоит в таймере срабатывание 500 мсек, то он будет срабатывать каждые 500 мсек
Это ничего практически если в секунду будет 2 раза проверка клавиш нажатых.
Сам размер кода не важен.


то есть если таймер сработал во время того как функция поиск изображения ожидает самого появления искомого изображения то отслеживание нажатия клавиш и поиска изображения будут работать в параллель?
4. Zireael - 19 Июня, 2018 - 03:23:50 - перейти к сообщению
 Цитата:
то есть если таймер сработал во время того как функция поиск изображения ожидает самого появления искомого изображения то отслеживание нажатия клавиш и поиска изображения будут работать в параллель?

Допустим поиск изображения занимает 20мсек, 500/20=25, т. е. 25 раз сработает поиск изображения, потом сработает таймер, потом опять 25 раз поиск изображения и т. д. Если в таймере нет слипов, то это никак не повлияет на поиск картинки.
5. Nathgul - 19 Июня, 2018 - 03:28:51 - перейти к сообщению
 Zireael пишет:
 Цитата:
то есть если таймер сработал во время того как функция поиск изображения ожидает самого появления искомого изображения то отслеживание нажатия клавиш и поиска изображения будут работать в параллель?

Допустим поиск изображения занимает 20мсек, 500/20=25, т. е. 25 раз сработает поиск изображения, потом сработает таймер, потом опять 25 раз поиск изображения и т. д. Если в таймере нет слипов, то это никак не повлияет на поиск картинки.


ты немного не понял... у поиска есть задержка в течении которой он ожидает вероятное появление рисунка... самый первый параметр в окне настроек findimage... если изображения нет то findimage обождет это время и пойдет по ветке "изображение не найдено"/// допустим этот параметр 4000мс=4сек... а что будет делать таймер с частотой запуска 20мс в эти 4 сек? по моим тестам - ничего... он продолжит свою работу как только findimage ее прекратит... или я чет не понимаю тогда...
(Добавление)
CREATE_TIMER(1, 2000)
{

if (findimage_T1(#Image_6_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 75, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB_T1, #x_KIB_T1, #y_KIB_T1)>0) goto m_KIB4_T1;
else goto m_KIB3_T1;
m_KIB4_T1: key_T1(99, 1, 0, 0); goto m_KIB5_T1;
m_KIB3_T1: if (findimage_T1(#Image_26_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 75, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB_T1, #x_KIB_T1, #y_KIB_T1)>0) goto m_KIB4_T1;
else goto m_KIB1_T1;
m_KIB1_T1:
goto exit_KIB_T1;
m_KIB5_T1: disabletimer (1);

exit_KIB_T1:;
}
(для просмотра ссылки Вам необходимо авторизоваться) - схематически

есть вот такой вот таймер... в нем 2 блока поиска индикации с нулевой задержкой... при нахождении рисунка 1 или 2 он нажимает клавишу и самовыключает себя (таймер имею ввиду)... задержку ставил 20 мс и работает он грустно вообще... пришлось увеличивать до 2 сек... есть ли в нем какие то слипы?
6. Kibor - 19 Июня, 2018 - 06:31:36 - перейти к сообщению
Таймер проверяет свое время в момент когда скрипт переходит на новую строку.

то есть если встроенная (розовая) findimage функция долго ищет внутри себя, то в это время таймер не работает и сработает когда findimage завершит свою работу.

а если ожидание изображения реализовано
CODE:
aaa();


function aaa()
{
//проверит время . если надо пеейдет в таймер
loop()
{
//проверит время . если надо пеейдет в таймер
if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1)==1)return;
//проверит время . если надо пеейдет в таймер
sleep(10);
//проверит время . если надо пеейдет в таймер
}
}


то таймер будет выполняться так.

А если в самой findimage долго ищет, то будет ожидать пока не выйдет с findimage

Powered by ExBB FM 1.0 Final