Таймер в условно бесконечном цикле

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

Модератор: immortal

zevplus
Сообщения: 33
Зарегистрирован: Чт авг 02, 2018 1:40 pm

Таймер в условно бесконечном цикле

Сообщение zevplus »

Всем доброго дня!
Прошу помощи в решении следующей задачи - организовать режим нагрузочного тестирования телевизионной приставки путем переключения каналов.

Исходные данные:

MegaD + IR передатчик
Majordomo со сценой IR_RCU. На сцене кнопка IR_Ch_UP_Run (img) c состояниями RUN и STOP.

Нужно придумать алгоритм - как посылать IR команду

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

file_get_contents("http://192.168.11.214/sec/?pt=12&ir=00FDD22D&irp0=9000&irp1=4500&irp2=560&irp3=1600&irp4=560"); 
каждые 3 секунды, пока состояние кнопки IR_Ch_UP_Run на сцене IR_RCU = RUN

Заранее спасибо!

Евгений.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: Таймер в условно бесконечном цикле

Сообщение Chainik »

zevplus писал(а): Ср мар 11, 2020 4:32 pm Всем доброго дня!
Прошу помощи в решении следующей задачи - организовать режим нагрузочного тестирования телевизионной приставки путем переключения каналов.

Исходные данные:

MegaD + IR передатчик
Majordomo со сценой IR_RCU. На сцене кнопка IR_Ch_UP_Run (img) c состояниями RUN и STOP.

Нужно придумать алгоритм - как посылать IR команду

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

file_get_contents("http://192.168.11.214/sec/?pt=12&ir=00FDD22D&irp0=9000&irp1=4500&irp2=560&irp3=1600&irp4=560"); 
каждые 3 секунды, пока состояние кнопки IR_Ch_UP_Run на сцене IR_RCU = RUN

Заранее спасибо!

Евгений.
1. Создать объект, создать свойство, создать метод.
2. Прописать код метода:

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

If (gg('Имя_объекта.Имя_свойства') == 1) {
file_get_contents("http://192.168.11.214/sec/?pt=12&ir=00FDD22D&irp0=9000&irp1=4500&irp2=560&irp3=1600&irp4=560");
SetTimeOut("myTimer_55","callMethod('Имя_объекта.Имя_метода');",3);
} else {
return "";
}
3. В состоянии кнопки на сцене RUN вписать код PHP:

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

sg('Имя_объекта.Имя_свойства', 0);
4. Для состояния RUN сослаться на Объект.Свойство и выставить условие отображения "=1".
5. В состоянии кнопки на сцене STOP вписать код PHP:

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

sg('Имя_объекта.Имя_свойства', 1);
cm('Имя_объекта.Имя_метода');
6. Для состояния STOP сослаться на Объект.Свойство и выставить условие отображения "<>1".
Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Таймер в условно бесконечном цикле

Сообщение xor »

Chainik писал(а): Ср мар 11, 2020 5:01 pm ...
1. Создать объект, создать свойство, создать метод.
...
можно без доп. объекта, обойдясь скриптом в две строки, в котором первая строка
file_get_contents("http://192.168.11.214/sec/?pt=12&ir=00F ... 0&irp4=560");
а последняя - таймер с запуском этого же скрипта с 3-х секундной задержкой, в ран кнопки запуск этого скрипта, в стоп - cleartimeout('имя_таймера_из_скрипта');
единственно, стоп придется неск. раз, возможно, нажать, чтобы попасть во время (3с-время выполнения file_get_contents) но если это для отладки, а не пост. решение, то сойдёт)
zevplus
Сообщения: 33
Зарегистрирован: Чт авг 02, 2018 1:40 pm

Re: Таймер в условно бесконечном цикле

Сообщение zevplus »

Спасибо!

Сегодня попробую!

Евгений.
zevplus
Сообщения: 33
Зарегистрирован: Чт авг 02, 2018 1:40 pm

Re: Таймер в условно бесконечном цикле

Сообщение zevplus »

Chainik писал(а): Ср мар 11, 2020 5:01 pm
1. Создать объект, создать свойство, создать метод.
Можете посоветовать - в каком классе создавать этот объект (IR_Sender)? или класс тоже нужно создать? у меня есть классы из установки "по умолчанию" - , например, SDevices

С уважением, Евгений.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: Таймер в условно бесконечном цикле

Сообщение Chainik »

zevplus писал(а): Чт мар 12, 2020 1:18 pm
Chainik писал(а): Ср мар 11, 2020 5:01 pm
1. Создать объект, создать свойство, создать метод.
Можете посоветовать - в каком классе создавать этот объект (IR_Sender)? или класс тоже нужно создать? у меня есть классы из установки "по умолчанию" - , например, SDevices

С уважением, Евгений.
Я бы на вашем месте создал новый класс. Это (создание нового класса) вас в дальнейшем ни к чему не обязывает. Просто будете овладевать базовым функционалом системы. А заодно избежите неочевидных для пользователя вещей, которые могут подстерегать в уже существующих классах.
Так что инструкцию можно было начать так:
1. Создать класс, создать объект, создать свойство, создать метод. :)
zevplus
Сообщения: 33
Зарегистрирован: Чт авг 02, 2018 1:40 pm

Re: Таймер в условно бесконечном цикле

Сообщение zevplus »

Chainik писал(а): Ср мар 11, 2020 5:01 pm ...
Так что инструкцию можно было начать так:
1. Создать класс, создать объект, создать свойство, создать метод. :)
Спасибо - Буду учить мат часть...

Евгений
zevplus
Сообщения: 33
Зарегистрирован: Чт авг 02, 2018 1:40 pm

Re: Таймер в условно бесконечном цикле

Сообщение zevplus »

Всем большое спасибо!

Все получилось!

Единственное, что изменил - свойства и метод сделал для класса а не для объекта (у меня объектов несколько).

Как развитие - добавил свойство "счетчик" и теперь каналы переключаются 30 раз вверх и 30 раз вниз пока не нажата кнопка Stop.

Если кому интересно - готов все расписать по шагам...

Евгений.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: Таймер в условно бесконечном цикле

Сообщение Chainik »

zevplus писал(а): Пт мар 13, 2020 6:23 pm Всем большое спасибо!

Все получилось!
...
Ну отлично!
А для "спасибо" есть специальная кнопочка (в виде жеста, выражающего одобрение). :)
Аватара пользователя
vitosmaxim80sad145
Сообщения: 148
Зарегистрирован: Сб июл 07, 2018 12:48 am
Откуда: Днепр

Re: Таймер в условно бесконечном цикле

Сообщение vitosmaxim80sad145 »

zevplus писал(а): Пт мар 13, 2020 6:23 pm Всем большое спасибо!

Все получилось!

Единственное, что изменил - свойства и метод сделал для класса а не для объекта (у меня объектов несколько).

Как развитие - добавил свойство "счетчик" и теперь каналы переключаются 30 раз вверх и 30 раз вниз пока не нажата кнопка Stop.

Если кому интересно - готов все расписать по шагам...

Евгений.
Да было бы не плохо расписать но наверное не 30 каналов а просто вверх пока не остановил .за ранее спасибо
Ответить