Запуск метода по таймеру из метода

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Re: Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 11:41 am

в xray вообще этот таймер не видно? он там вообще должен появляться?
Причем даже когда срабатывает то то-же не появляется.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Запуск метода по таймеру из метода

Сообщение Chainik » Ср фев 24, 2021 12:07 pm

Таймер появляться должен. Поставьте только пока время таймера секунд 25-30, а то там время обновления информации секунд 5. Возможно, вы просто не успеваете его заметить.
Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Re: Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 12:26 pm

Chainik писал(а):
Ср фев 24, 2021 12:07 pm
Таймер появляться должен. Поставьте только пока время таймера секунд 25-30, а то там время обновления информации секунд 5. Возможно, вы просто не успеваете его заметить.
Сорри таймер запускается, не по тому имени фильтровал ...

вот в иксрее с поле команда :
say('запущен таймер_'.time()); callMethod(51_WateringDevice.'.SetOpenTime');
чет мне кажется косяк в имени метода после подстановки имени объекта.
Virtual__
Сообщения: 8
Зарегистрирован: Ср фев 24, 2021 10:06 am
Благодарил (а): 0
Поблагодарили: 0

Re: Запуск метода по таймеру из метода

Сообщение Virtual__ » Ср фев 24, 2021 12:34 pm

Ураааа заработало!!!

SetTimeOut("tst_timer", "callMethod('$ot.SetOpenTime');", 5); вот рабочий вариант

А правильнее будет
SetTimeOut($ot."_timer", "callMethod('$ot.SetOpenTime');", 5);

А так же работает:
SetTimeOut($this->object_title."_timer", "callMethod('$this->object_title.SetOpenTime');", 5);
Осталась непонятка с "." после $this->object_title в названии таймера, без точки на сохраняется скрипт, но в названии таймера в иксрее ее нет.
А в вызове метода она присутствует
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Запуск метода по таймеру из метода

Сообщение Chainik » Ср фев 24, 2021 12:54 pm

Вы переменную внутрь кавычек запихиваете. Правильный вариант должен быть таким:

Код: Выделить всё

SetTimeOut($ot."_timer", "callMethod($ot.'.SetOpenTime');", 5);
Точка (вне кавычек) "склеивает" текст/выражение.
Ответить