Добрый день.
Заведен виртуальный параметр с округлением до десятого знака:
oxygen: {
type: "value",
value: 0,
round_to: 0.1
В интерфейсе отображается сильно больше знаков после запятой:
Как победить проблему с округлением?
Ianni
17.Февраль.2020 12:21:00
2
Добрый день. В текущей версии движка правил данный параметр не поддерживается. Можно округлять в ручную. через правила. На пример: создайте второй виртуальный девайс, в который будут прилетать не округленные значения. Дальше округлив это значение записывайте в нужный девайс.
defineVirtualDevice("virtualDevice", {
title: "oxygen",
cells: {
oxygenRaw: {
type: "value",
value: 0.1010101,
},
oxygen: {
type: "value",
value: 0.1,
},
}
});
defineRule("roundOxygen", {
whenChanged: "virtualDevice/oxygenRaw",
then: function(newValue, devName, cellName) {
dev["virtualDevice"]["oxygen"] = parseFloat(newValue).toFixed(1)
}
});
ssssss
29.Март.2022 07:04:10
4
Добрый день, у меня почему то не округляет, значение на дашборде вообще перестают меняться.
defineVirtualDevice("wb-msw-v3_1", {
title: "Pirometr_Ax1",
cells: {
Temperature: {
type: "temperature",
value: 0.11,
readonly: true
}
}
});
function map(x, in_min, in_max, out_min, out_max) {
var result = (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
return result;
}
defineRule("Mode", {
whenChanged: "wb-adc/EXT1_A1",
then: function(newValue, devName, cellName) {
temp = map(newValue, 4, 20, -50, 0);
dev['wb-msw-v3_1']['Temperature'] = parseFloat(temp).toFixed(2);
}
});
Здравствуйте!
Некорректно объявлена переменная temp, а для округления попробуйте использовать такую конструкцию:
defineRule("Mode", {
whenChanged: "wb-adc/EXT1_A1",
then: function(newValue, devName, cellName) {
var temp = map(newValue, 4, 20, -50, 0);
dev['wb-msw-v3_1']['Temperature'] = parseFloat(temp.toFixed(2));
}
});
1 лайк