UNPKG

grunig-nodes

Version:

Grünig Nodes Library

51 lines (42 loc) 1.98 kB
module.exports = function(RED) { function OpcUaReadNode(config) { RED.nodes.createNode(this, config); var node = this; // Nachrichtenverarbeitungsfunktion node.on('input', function(msg) { // Einstellungen speichern var path = config.path || ""; // Standardwert verwenden, wenn nicht vorhanden var value = config.value || 0; for (var i = 1; i <= 15; i++) { // Konstruieren des Variablennamens var variableName = "data" + i; // Abrufen des Datenstrings aus dem Kontext var dataString = config[variableName]; // Überprüfen, ob Daten vorhanden sind if (dataString !== undefined) { // Trennen von Name und Datentyp var parts = dataString.split(/\s*\[\s*/); var name = parts[0].trim(); // Name ist der erste Teil // Überprüfen, ob ein Datentyp vorhanden ist var dataType = ""; if (parts.length > 1) { dataType = parts[1].replace(']', '').trim(); // Datentyp ist der zweite Teil ohne das schließende eckige Klammern [] } // Erstellen der Nachricht var dataMsg = { topic: path + name, datatype: dataType, browseName: name, payload: value }; // Überprüfen, ob browseName und datatype definiert sind if (dataMsg.browseName !== "" && dataMsg.datatype !== "") { node.send(dataMsg); } } } }); } // Node-Typ registrieren RED.nodes.registerType("OpcUa-Read", OpcUaReadNode); };