0
Ожидает ответа пользователя

HDL - включение канала по событию

Dmitry Vorontsov 7 лет назад в Продукты / HDL-BUS Pro обновлен Dmitry - support (expert) 7 лет назад 1

Есть задача. Включать один канал в DMX-контроллере (48-канальном) раз в неделю и второй два раз в месяц (оповещение такое).

Написал следующую конструкцию:

IR.AddListener(IR.EVENT_START,0,function()

{
if (IR.GetVariable("System.Date.DayOfWeek") == "5")
{
IR.GetDevice("HDL-BUS Pro Network (UDP)").Set('Д-02 (DMX 48 channels):DMX Channel 41',100);
}
});

IR.AddListener(IR.EVENT_START,0,function()

{
if (IR.GetVariable("System.Date.Day") == "1" || IR.GetVariable("System.Date.Day") == "15")
{
IR.GetDevice("HDL-BUS Pro Network (UDP)").Set("Д-02 (DMX 48 channels):DMX Channel 44",100)
}
});


Не работает. Направьте плз на путь истинный. Что я сделал неправильно?

Ожидает ответа пользователя

Здравствуйте!


У вас опрос переменных дня и недели идет только при старте проекта, дальше они не опрашиваются, т. е. если даже день сменился, то ваш проект об этом не узнает. Вам необходимо добавить периодический опрос данных переменных. Например:


IR.AddListener(IR.EVENT_START,0,function()

{

//Опрос раз в час

IR.SetInterval(3600000, function(){

if (IR.GetVariable("System.Date.DayOfWeek") == "5")

{
IR.GetDevice("HDL-BUS Pro Network (UDP)").Set('Д-02 (DMX 48 channels):DMX Channel 41',100);
}

if (IR.GetVariable("System.Date.Day") == "1" || IR.GetVariable("System.Date.Day") == "15")

{
IR.GetDevice("HDL-BUS Pro Network (UDP)").Set("Д-02 (DMX 48 channels):DMX Channel 44",100)
}

});

});

Сервис поддержки клиентов работает на платформе UserEcho