Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Октября 07, 2024, 06:35:36 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Реально не работает таймер как положено!!! (касаемо милисекунд) « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Реально не работает таймер как положено!!! (касаемо милисекунд)  (Прочитано 7031 раз)
White Noise
Full Member
***
Сообщений: 164


White Noise

ICQ Messenger - 411196569
Просмотр профиля Email
« : Апреля 09, 2014, 01:35:46 pm »

Heller, пожалуйста верните возможность таймера  - работать по заявленному хотя бы 100 млсек.  Похоже на новых версиях (у меня  5.08.336.18 rev 55 ATF 1.20) вы помнится над удалением мусора работали,....может и таймер чуток "подзадели" ....

В общем сейчас  не меньше секунды = 1000 млс. работает,  даже если принудительно ставишь положенные 100.

Как быть ?
« Последнее редактирование: Апреля 11, 2014, 08:16:56 am от White Noise » Записан
REboev
Newbie
*
Сообщений: 7


Просмотр профиля Email
« Ответ #1 : Апреля 09, 2014, 05:26:56 pm »

Добавлю своих 5 копеек по таймеру.
версия 5.08.336.01 rev 55 ATF 1.20

Пример из http://www.transaq.ru/dokuwiki/atf:время?s[]=timer
+Немного доработанный.

Таймер отрабатывает всего один раз.

static count = 0;
static timerID = 0;
 
function f()
{
  count += 1;
  if (count == 5) {
    delTimer(timerID);
  }
  else                                             //<- Добавил я
  {                                                 //<- Добавил  я
    signal::output("Timer");             //<- Добавил я
  }                                                 //<- Добавил я

}
 
function init()
{
  timerID = setTimer("f", 6000, TIMER_PERIODICALLY);            //Изменил 60000 на 6000
}
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #2 : Апреля 16, 2014, 03:20:13 pm »

Whine Noise, ваша проблема пока не ясна, воспроизвести её у нас не удаётся.

REboev, функция вызывается на самом деле нужное количество раз, просто у вас используется signal::output и именно она работает единожды. Используйте функцию signal::outputMultiple.
Записан
White Noise
Full Member
***
Сообщений: 164


White Noise

ICQ Messenger - 411196569
Просмотр профиля Email
« Ответ #3 : Апреля 18, 2014, 06:30:39 am »

Heller, я думаю вы поняли меня про что я. А именно, данный пример должен выдавать ровно десять (10) сообщений в окно ATF в одну секунду, согласны ?

//------------------------------------------------------------------------------------------------------------------------------------------------
static timer;

function f() {  signal::outputMultiple( " Не маловато-ли один раз в секунду при поставленных 100 млс.... ");   }

 
function init(){timer = setTimer("f", 100, TIMER_PERIODICALLY);  }       

//------------------------------------------------------------------------------------------------------------------------------------------------
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #4 : Апреля 21, 2014, 12:27:17 pm »

Ошибка найдена, правлю.
Записан
REboev
Newbie
*
Сообщений: 7


Просмотр профиля Email
« Ответ #5 : Апреля 23, 2014, 05:59:53 pm »

REboev, функция вызывается на самом деле нужное количество раз, просто у вас используется signal::output и именно она работает единожды. Используйте функцию signal::outputMultiple.

Спасибо Heller
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Реально не работает таймер как положено!!! (касаемо милисекунд) « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!