Добрый вечер.
Спрошу здесь. Аналогичная ситуация (WB7 последний testing) при публикации из вне в топик meta “units”, значение в нем не меняется и остается “старым”
сама ячейка объявлена так
var gtDeviceID = "GT_MAI6_AI1";
try {
var gtDevice = defineVirtualDevice(gtDeviceID, {
title: "GT_MAI6_AI1",
cells: {
rawValue: {
title: "rawValue",
type: "value",
value: -999999999,
units: "%",
readonly: false,
order: 1,
},
соответственно не срабатывает правило
defineRule("isChangeRawValueUnits", {
whenChanged: gtDeviceID + "/rawValue#units", // При изменении ед. изм в топике поступающем с уcтройства
then: function (newValue, devName, cellName) {
try {
dev[gtDeviceID + "/inCalPoint_01#units"] = newValue;
Если сделать вызов с самого WB например так
dev[gtDeviceID + "/rawValue#units"] = "mA";
то правило срабатывает как надо.
И еще, если публиковать извне, то в веб интерфейсе значение меняется и даже переводится. Публиковал ед. изм. V, в не ( /on ) топик (см. скриншот выше) и она отобразилась веб интерфейсе
и даже перевелась, но срабатывание правила так и не произошло и в логе пусто .
Пробовал публиковать и
/devices/GT_MAI6_AI1/controls/rawValue/meta/units/on
вообще ничего не меняется и
/devices/GT_MAI6_AI1/controls/rawValue/meta/units
так хоть web UI меняется. Искал по форуму вроде еще темы были, но не нашел.
нужно ли для виртуальных устройств всегда публиковать в топики /on для изменений? Вроде это относится только к физическим устройствам?.
что делаю неправильно?
UPD. Нашел похожую тему whenChanged не реагирует на изменение значение виртуального устройства - #9 от пользователя dust но у меня так не происходит