0
Waiting for user's reply

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

Dmitry Vorontsov 9 jaar geleden in Products / HDL-BUS Pro bijgewerkt door Dmitry - support (expert) 9 jaar geleden 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)
}
});


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

Waiting for user's reply

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


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


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)
}

});

});