grunig-nodes
Version:
Grünig Nodes Library
55 lines (44 loc) • 1.91 kB
JavaScript
module.exports = function(RED) {
function MoveBeam(config) {
RED.nodes.createNode(this, config);
var node = this;
var lastValue;
// Nachrichtenverarbeitungsfunktion
node.on('input', function(msg) {
var beamPos = msg.payload.BeamPos;
var machineNameSVG = msg.payload.MachineNameSVG;
var maxLength = config.maxLength;
var magFormat = config.magFormat;
var fromValue, toValue;
var multiplikator = maxLength / 100;
var attributeValueFrom, attributeValueTo;
if (magFormat !== "width" && magFormat !== "height"){
node.warn("Kein gültiges Format: " + magFormat);
}
fromValue = lastValue * multiplikator;
toValue = beamPos * multiplikator;
// Aktualisieren der letzten Wertvariable
lastValue = beamPos;
if (magFormat === "width"){
attributeValueFrom = `${fromValue},0`;
attributeValueTo = `${toValue},0`;
}
else if (magFormat === "height"){
attributeValueFrom = `0,${fromValue}`;
attributeValueTo = `0,${toValue}`;
}
dataMsg = {
payload:
{
"command": "animation",
"selector": machineNameSVG + "_" + magSelect + "ScreenMove",
"attributeValueFrom": attributeValueFrom,
"attributeValueTo": attributeValueTo,
"duration": 1
}};
node.send(dataMsg);
});
}
// Node-Typ registrieren
RED.nodes.registerType("Move-Beam", MoveBeam);
};