Добрый день.
Параметр “value” при создании виртуального устройства - он не предназначен для вывода изменяющихся значений, он просто определяет то, что будет в контроле (в поле) при его создании.
Доступ к значениям счетчиков получать так:
dev["Fluid"]["P2 Counter"]
И немного неверная идеология, ваша задача решается двумя этапами, создаем виртуальное устройство, которое будет отображать требуемые значения и правило которое подписывается на источник данных (счетчик) и при изменении его значения - обновляет поле виртуального.
Например:
//21_11_test_4.js
defineVirtualDevice("water_meter",
{
title: "Water Meter",
cells: {
Cold: {
type: "value",
value: 0,
},
Hot: {
type: "value",
value: 0,
}
}
});
defineRule("ruleForCold", { //Правило начинаем создавать
whenChanged: "Fluid/P2 Counter", //При изменении dev["Fluid"]["P2 Counter"], тут можно упростить запись
then: function(newValue, devName, cellName) { //в переменной newValue передается изменившее ся значение, можно использовать ее вместо dev["Fluid"]["P2 Counter"]
dev["water_meter"]["Cold"] = newValue; //установим значение в поле виртуального устройства
}
});
}
defineRule("ruleForHot", { //Правило начинаем создавать
whenChanged: "Fluid/P1 Counter", //При изменении dev["Fluid"]["P1 Counter"]
then: function(newValue, devName, cellName) { //в переменной newValue передается изменившее ся значение, можно использовать ее вместо dev["Fluid"]["P1 Counter"]
dev["water_meter"]["Hot"] = newValue; //установим значение в поле виртуального устройства
}
});
}
Не стал использовать создание правил из функций и сделал “в лоб” для понятности.
имена устройств и названия контролров - можно смотреть прямо в веб-интерфейсе:
В правилах используются только имя устройства (первый столбец) и имя контрола (второй). “devices” и “controls” опускаются.
Если что-то непонятно - спрашивайте, с удовольствием объясню, как раз наброски делаю для раздела про виртуальные устройства в wb-rules.
мне очень нужны типичные вопросы. чтобы понимать что обычно непонятно и о чем писать.