UNPKG

grunig-nodes

Version:

Grünig Nodes Library

55 lines (44 loc) 1.91 kB
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); };