Здравствуйте, Товарищи!
Не могу придумать правило (в скриптах ноль).
Задача:
есть N контролов
Если хотя бы один из них в 1, то активировать выход
Если все выключены, то выход деактивировать.
Через whenChanged вообще не вариант, т.к. контролы могут не изменять своё состояние во времени, а через функцию не умею.
С помощю FBD или ST это делается за пару минут, но тут вообще засел, уже несколько дней штудирую интернет.
а чем whenChanged не угодило?
ведь что-то же должно служить триггером обновления состояния.
С виду банальное ИЛИ от нескольких boolean контролов (я же правильно догадался, что все контролы true/false?)
кажется вот такое может помочь
var condition = function() {
var cond = dev['dev1/ctrl1'] || dev['dev2/ctrl2']; // тут все контролы по ИЛИ
return cond; // можно было и в одну строку написать
};
var rule1 = defineRule({
whenChanged: ['dev1/ctrl1', 'dev2/ctrl2'], // ну и так далее - все контролы из функции (п.0)
then: function() {
dev['outDev/outCtrl'] = condition();
}
});
Примерно так же можно триггериться по каким-то иным условиям, таймеру, cron-у или просто в коде где-то вызывать
dev['outDev/outCtrl'] = condition();
или модно (чтобы не плодить дубликаты кода, если есть правило)
Да совершенно верно обычное ИЛИ на включение и обычное И на выключение, но победить не могу.
Спасибо за наводку буду пробовать, но только уже через дней 10 не раньше, новогодняя суета.