Добрый день! Требуется сделать код для обработки длинного и короткого нажатия виртуальной кнопки в виртуальном устройстве, которая в свою очередь будет связана с кнопкой в SVG панели.? Как реализовать обработчик через таймеры? И вообще возможно ли это с использованием в wb-rules?
На данный момент пока смог заставить работать только так - однократное нажатие на левую кнопку уменьшает уровень от 0 до 100 с шагом 5, однократное нажатие на правую кнопку увеличивает уровень от 0 до 100 с шагом 5
keypad_1 = 'keypad_1';
defineVirtualDevice(keypad_1, {
title: {'en': 'My Virtual Keypad 1', 'ru': 'Панель 1'} ,
cells: {
button3L: {
title: {'en': 'Button3L', 'ru': 'Кнопка3Л'},
type: "pushbutton",
value: false
},
state3L: {
title: {'en': 'Button3L', 'ru': 'Кнопка3Л'},
type: "switch",
readonly: true,
value: false
},
button3R: {
title: {'en': 'Button3R', 'ru': 'Кнопка3П'},
type: "pushbutton",
value: false
},
state3R: {
title: {'en': 'Button3R', 'ru': 'Кнопка3П'},
readonly: true,
type: "switch",
value: false
},
level_right: {
title: {'en': 'Level Right', 'ru': 'Уровень Справа'},
readonly: true,
type: "range",
value: 0,
min: 0,
max: 100
}
}
});
defineRule("button_up_short_press_1", {
whenChanged: "keypad_1/button3R",
then: function (newValue) {
if (newValue === true) {
dev["keypad_1/level_right"] = Math.min(100, dev["keypad_1/level_right"] + 5);
log.info("Level increased to: " + dev["keypad_1/level_right"]);
}
},
});
defineRule("button_down_short_press_1", {
whenChanged: "keypad_1/button3L",
then: function (newValue) {
if (newValue === true) {
dev["keypad_1/level_right"] = Math.max(0, dev["keypad_1/level_right"] - 5);
log.info("Level decreased to: " + dev["keypad_1/level_right"]);
}
},
});