АВТОморгание светодиодом как реализовать через сценарий?
Модератор: immortal
-
- Сообщения: 15
- Зарегистрирован: Чт апр 09, 2020 8:03 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
АВТОморгание светодиодом как реализовать через сценарий?
Передо мной встала следующая задачка.
Упрощенно говоря, мне нужно настроить на мажордомо автоматическое включение-выключение светодиода. Есть объект, связанный со светодиодом, называется он Дежурныйночник. И у него есть свойство состояния: status.
Должно работать по кругу, следующим образом:
- светодиод включился, горит 1 секунду
sg('Дежурныйночник.status',1);
- светодиод выключился, не горит 5 секунд
sg('Дежурныйночник.status',0);
Вопросы:
1) Как организовать задержку 1 сек и 5 сек так, чтобы это не вешало выполнение остальных обязанностей мажордома?
2) Куда положить исполняемый код, чтобы он отрабатывал регулярно, а не раз в минуту?
Упрощенно говоря, мне нужно настроить на мажордомо автоматическое включение-выключение светодиода. Есть объект, связанный со светодиодом, называется он Дежурныйночник. И у него есть свойство состояния: status.
Должно работать по кругу, следующим образом:
- светодиод включился, горит 1 секунду
sg('Дежурныйночник.status',1);
- светодиод выключился, не горит 5 секунд
sg('Дежурныйночник.status',0);
Вопросы:
1) Как организовать задержку 1 сек и 5 сек так, чтобы это не вешало выполнение остальных обязанностей мажордома?
2) Куда положить исполняемый код, чтобы он отрабатывал регулярно, а не раз в минуту?
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: АВТОморгание светодиодом как реализовать через сценарий?
Могу предположить, что иногда (когда Юпитер входит в созвездие Козерога) вам захочется отключать моргание светодиода.
В этом случае я бы добавил еще одно свойство (скажем, "Disabled"), которое говорило бы о том, что автоморгание светодиода отключено (значение свойства = 1).
Код можете поместить в скрипт (сценарий). Чтобы не подвешивало систему, можно использовать SetTimeOut.
В этом случае я бы добавил еще одно свойство (скажем, "Disabled"), которое говорило бы о том, что автоморгание светодиода отключено (значение свойства = 1).
Код можете поместить в скрипт (сценарий). Чтобы не подвешивало систему, можно использовать SetTimeOut.
Код: Выделить всё
if (gg('Дежурныйночник.Disabled') == 1) return "";
sg('Дежурныйночник.status',1);
setTimeOut('myTimer_Off_1','sg("Дежурныйночник.status",0);',1);
setTimeOut('myTimer_perezapusk','runScript("ИМЯ_ВАШЕГО_СКРИПТА");',6);
- Рейтинг: 1.16%
-
- Сообщения: 15
- Зарегистрирован: Чт апр 09, 2020 8:03 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: АВТОморгание светодиодом как реализовать через сценарий?
Насчет Юпитера и Козерога - согласен, полезное дополнение!!
Вопросы:
1) куда поместить предложенный Вами код, чтобы он выполнялся регулярно? Достаточно ли будет просто создать сценарий с этим кодом? Или нужно его вызывать по какому то событию?
2) мне нужно еще написать скрипт перезапуска? в чем заключается его работа?
Вопросы:
1) куда поместить предложенный Вами код, чтобы он выполнялся регулярно? Достаточно ли будет просто создать сценарий с этим кодом? Или нужно его вызывать по какому то событию?
2) мне нужно еще написать скрипт перезапуска? в чем заключается его работа?
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: АВТОморгание светодиодом как реализовать через сценарий?
Нужно создать сценарий и записать код туда (назвать сценарий можно как угодно, например, "morganie"). Сам по себе код будет выполняться беспрерывно, "по кругу", но, естественно, после запуска. Запустить сценарий можно вручную. Можно по событию: произошло событие, сработал код:
Код: Выделить всё
runScript("morganie");
Никакого дополнительного скипта перезапуска писать не нужно. Этот скрипт будет перезапускать сам себя, исполняя последнюю строчку:
Код: Выделить всё
setTimeOut('myTimer_perezapusk','runScript("morganie");',6);
-
- Сообщения: 15
- Зарегистрирован: Чт апр 09, 2020 8:03 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: АВТОморгание светодиодом как реализовать через сценарий?
ааа! вон оно как! да, мне именно этого зацикливания не хватало для написания кода.
Тогда вопрос: если запущу вручную скрипт, то при перезапуске системы его же придется опять вручную выполнять, да?
Тогда вопрос: если запущу вручную скрипт, то при перезапуске системы его же придется опять вручную выполнять, да?
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: АВТОморгание светодиодом как реализовать через сценарий?
Да, именно так. Если вам нужно, чтобы исполнялся постоянно, можете записать в onNewMinute. Или запускать вручную. Или по событию: произошло событие -- запускаем. Или по условию: проверили условию (Юпитер не в созвездии Козерога), если условие исполняется -- запускаем.
-
- Сообщения: 15
- Зарегистрирован: Чт апр 09, 2020 8:03 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: АВТОморгание светодиодом как реализовать через сценарий?
Thiscomputer.StartUp - как я понимаю как раз метод, который в обязательном порядке выполняется при старте системы мажордомо...
Наверное, он мне и нужен.
Спасибо еще раз! Вопрос закрыт.
Наверное, он мне и нужен.
Спасибо еще раз! Вопрос закрыт.
-
- Сообщения: 15
- Зарегистрирован: Чт апр 09, 2020 8:03 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: АВТОморгание светодиодом как реализовать через сценарий?
Если кому то будет полезно, у меня все заработало.
1) Создал свойство Дежурныйночник.auto.
2) Создал сценарий "upravlenienochnikom".
3) Создал в меню переключатель "Автовключение ночника"
4) Связал переключатель в меню с объектом Дежурныйночник, свойством auto.
5) Связал переключатель в меню со сценарием upravlenienochnikom.
Теперь когда включаешь переключатель, сценарий выполняется бесконечно. Когда выключаешь переключатель, сценарий перестает выполняться. Красотааа!!
Вот код сценария upravlenienochnikom:
1) Создал свойство Дежурныйночник.auto.
2) Создал сценарий "upravlenienochnikom".
3) Создал в меню переключатель "Автовключение ночника"
4) Связал переключатель в меню с объектом Дежурныйночник, свойством auto.
5) Связал переключатель в меню со сценарием upravlenienochnikom.
Теперь когда включаешь переключатель, сценарий выполняется бесконечно. Когда выключаешь переключатель, сценарий перестает выполняться. Красотааа!!
Вот код сценария upravlenienochnikom:
Код: Выделить всё
if (gg('Дежурныйночник.auto')==1)
{
sg('Дежурныйночник.status',1);
setTimeOut('myTimer_Off_1','sg("Дежурныйночник.status",0);',1);
setTimeOut('myTimer_perezapusk','runScript("upravlenienochnikom");',6);
}
else
{
if (timeOutExists('myTimer_Off_1')) ClearTimeOut('myTimer_Off_1');
if (timeOutExists('myTimer_perezapusk')) ClearTimeOut('myTimer_perezapusk');
}
- Рейтинг: 1.16%