diff --git a/CHANGELOG.md b/CHANGELOG.md index aa830f8c..2a0058ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [1.3.3](https://github.com/biancode/node-red-contrib-iiot-opcua/compare/v1.3.1...v1.3.3) (2018-01-10) + + + ## [1.3.2](https://github.com/biancode/node-red-contrib-iiot-opcua/compare/v1.3.1...v1.3.2) (2018-01-09) diff --git a/docs/OPCUA Service Errors.txt b/docs/OPCUA Service Errors.txt deleted file mode 100644 index 6c1b6322..00000000 --- a/docs/OPCUA Service Errors.txt +++ /dev/null @@ -1,19 +0,0 @@ -2 Apr 11:50:50 - [error] [OPCUA-IIoT-Read:4880df4.b19c92] Error: ServiceFault returned by server { /*ServiceFault*/ - responseHeader /* ResponseHeader */: { - timeStamp /* UtcTime */: 2017-04-02T09:50:47.647Z - requestHandle /* IntegerId */: 69303 0x10eb7 - serviceResult /* StatusCode */: BadSessionClosed (0x80260000) - serviceDiagnostics /* DiagnosticInfo */: { - namespaceUri /* Int32 */: -1 - symbolicId /* Int32 */: -1 - locale /* Int32 */: -1 - localizedText /* Int32 */: -1 - additionalInfo /* String */: null - innerStatusCode /* StatusCode */: Good (0x00000) - innerDiagnosticInfo /* DiagnosticInfo */: { - } - } - stringTable /* String [] */: [ ] (l=1) - additionalHeader /* ExtensionObject */: null - } -}; diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index c4192631..00000000 --- a/docs/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-cayman \ No newline at end of file diff --git a/examples/opcua-iiot-browser-read.json b/examples/opcua-iiot-browser-read.json index f96f36e6..1a6e5d76 100644 --- a/examples/opcua-iiot-browser-read.json +++ b/examples/opcua-iiot-browser-read.json @@ -1,16 +1,16 @@ [ { - "id": "4b36432f.1ed3cc", + "id": "3c9d7aa6.1a6a4e", "type": "tab", "label": "IIoT Browse And Read", "disabled": false, "info": "" }, { - "id": "23c062ba.dec65e", + "id": "eded6c05.9b7488", "type": "OPCUA-IIoT-Browser", - "z": "4b36432f.1ed3cc", - "connector": "31ab10c.c0f77f", + "z": "3c9d7aa6.1a6a4e", + "connector": "15b7d82c.f855e8", "nodeId": "", "name": "", "showStatusActivities": false, @@ -19,22 +19,23 @@ "y": 120, "wires": [ [ - "7654330.d1c53cc", - "648b0815.6f39f8", - "d7954a0.3cb07b8", - "91213573.3bfb78" + "1cb79501.d4d073", + "2c3a6754.8c07f", + "9891efa1.f529d", + "64bf9b56.6a4314", + "7768f1e2.af983" ] ] }, { - "id": "7654330.d1c53cc", + "id": "1cb79501.d4d073", "type": "ui_template", - "z": "4b36432f.1ed3cc", - "group": "95160375.96b4e", + "z": "3c9d7aa6.1a6a4e", + "group": "c2639dd.dc2c3e", "name": "", "order": 0, - "width": 0, - "height": 0, + "width": "12", + "height": "14", "format": "
\n
\n

{{msg.payload.endpoint}}

\n
\n
\n

{{msg.payload.browseTopic}} with {{msg.payload.browserResultCount}} references

\n
\n
\n

Results

\n
\n
\n \n \n
\n
\n
\n
    \n
  • \n {{item.displayName.text}} ( {{item.nodeId}} - {{item.browseName}})\n
  • \n
\n
\n
\n
", "storeOutMessages": false, "fwdInMessages": false, @@ -43,27 +44,27 @@ "y": 60, "wires": [ [ - "23c062ba.dec65e", - "3c2e5b7c.f1f214" + "eded6c05.9b7488", + "bf867198.787e" ] ] }, { - "id": "648b0815.6f39f8", + "id": "2c3a6754.8c07f", "type": "debug", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "", "active": false, "console": "false", "complete": "true", "x": 510, - "y": 220, + "y": 280, "wires": [] }, { - "id": "3dcd6539.7ff07a", + "id": "8d125437.d8b9c", "type": "OPCUA-IIoT-Inject", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "injectType": "read", "payload": "", "payloadType": "date", @@ -75,8 +76,8 @@ "name": "Root", "addressSpaceItems": [ { - "name": "BiancoRoyal", - "nodeId": "ns=4;i=1234", + "name": "Tanks", + "nodeId": "ns=1;i=1000", "datatypeName": "" } ], @@ -84,28 +85,28 @@ "y": 120, "wires": [ [ - "23c062ba.dec65e", - "5c7889b4.5b6a38" + "eded6c05.9b7488", + "994bb92f.fe542" ] ] }, { - "id": "d7954a0.3cb07b8", + "id": "9891efa1.f529d", "type": "OPCUA-IIoT-Response", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "", "x": 520, "y": 100, "wires": [ [ - "748a193b.03ac78" + "2e112a95.9335b6" ] ] }, { - "id": "748a193b.03ac78", + "id": "2e112a95.9335b6", "type": "debug", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "", "active": false, "console": "false", @@ -115,44 +116,45 @@ "wires": [] }, { - "id": "91213573.3bfb78", + "id": "64bf9b56.6a4314", "type": "OPCUA-IIoT-Read", - "z": "4b36432f.1ed3cc", - "attributeId": "13", + "z": "3c9d7aa6.1a6a4e", + "attributeId": "0", "maxAge": "0", "depth": 1, - "connector": "31ab10c.c0f77f", - "name": "Read browsed NodeIds", + "connector": "15b7d82c.f855e8", + "name": "Read browsed All", "justValue": true, "multipleRequest": true, - "metaDataInject": false, "showStatusActivities": false, "showErrors": false, - "x": 570, + "x": 550, "y": 160, "wires": [ [ - "56437d8e.54ce54" + "75c637c9.e0d658" ] ] }, { - "id": "56437d8e.54ce54", + "id": "75c637c9.e0d658", "type": "OPCUA-IIoT-Response", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "", + "showStatusActivities": false, + "showErrors": false, "x": 760, "y": 160, "wires": [ [ - "d8ad1459.8d1fd8" + "ac316265.411448" ] ] }, { - "id": "d8ad1459.8d1fd8", + "id": "ac316265.411448", "type": "debug", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "", "active": true, "console": "false", @@ -162,9 +164,9 @@ "wires": [] }, { - "id": "5c7889b4.5b6a38", + "id": "994bb92f.fe542", "type": "debug", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "", "active": false, "console": "false", @@ -174,9 +176,9 @@ "wires": [] }, { - "id": "3c2e5b7c.f1f214", + "id": "bf867198.787e", "type": "debug", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "", "active": false, "console": "false", @@ -186,29 +188,89 @@ "wires": [] }, { - "id": "31ab10c.c0f77f", + "id": "7768f1e2.af983", + "type": "OPCUA-IIoT-Read", + "z": "3c9d7aa6.1a6a4e", + "attributeId": "13", + "maxAge": "0", + "depth": 1, + "connector": "15b7d82c.f855e8", + "name": "Read browsed Values", + "justValue": true, + "multipleRequest": true, + "showStatusActivities": false, + "showErrors": false, + "x": 560, + "y": 220, + "wires": [ + [ + "643dacd2.5eb3ec" + ] + ] + }, + { + "id": "643dacd2.5eb3ec", + "type": "OPCUA-IIoT-Response", + "z": "3c9d7aa6.1a6a4e", + "name": "", + "showStatusActivities": false, + "showErrors": false, + "x": 760, + "y": 220, + "wires": [ + [ + "fe316356.54ec3" + ] + ] + }, + { + "id": "fe316356.54ec3", + "type": "debug", + "z": "3c9d7aa6.1a6a4e", + "name": "", + "active": true, + "console": "false", + "complete": "true", + "x": 920, + "y": 220, + "wires": [] + }, + { + "id": "134d7d71.9db4d3", + "type": "comment", + "z": "3c9d7aa6.1a6a4e", + "name": "Please, check the port of LOCAL SERVER connector!", + "info": "default ports: \n\n 55388 for the OPC UA IIoT Server\n\n 55380 for the OPC UA IIoT Flex Server", + "x": 800, + "y": 60, + "wires": [] + }, + { + "id": "15b7d82c.f855e8", "type": "OPCUA-IIoT-Connector", "z": "", - "endpoint": "opc.tcp://localhost:55388/", + "endpoint": "opc.tcp://localhost:55380/", "keepSessionAlive": true, - "loginEnabled": true, + "loginEnabled": false, + "securityPolicy": "None", + "securityMode": "NONE", "name": "LOCAL SERVER", "showStatusActivities": false, "showErrors": false }, { - "id": "95160375.96b4e", + "id": "c2639dd.dc2c3e", "type": "ui_group", "z": "", "name": "Default", - "tab": "852ae1.eacca52", + "tab": "835f160.4b91468", "disp": true, - "width": "10" + "width": "12" }, { - "id": "852ae1.eacca52", + "id": "835f160.4b91468", "type": "ui_tab", - "z": "4b36432f.1ed3cc", + "z": "3c9d7aa6.1a6a4e", "name": "Node-RED OPC UA IIoT", "icon": "dashboard" } diff --git a/examples/opcua-iiot-browser.json b/examples/opcua-iiot-browser.json index 61402402..032c7107 100644 --- a/examples/opcua-iiot-browser.json +++ b/examples/opcua-iiot-browser.json @@ -1,16 +1,16 @@ [ { - "id": "7df7b82d.f08ee8", + "id": "baed51be.8047f8", "type": "tab", "label": "IIoT OPC UA Browser", "disabled": false, "info": "" }, { - "id": "c36a769d.746fb8", + "id": "ef59a43b.6daa18", "type": "OPCUA-IIoT-Browser", - "z": "7df7b82d.f08ee8", - "connector": "e9e8c12d.755ba", + "z": "baed51be.8047f8", + "connector": "6bb27954.03ca3", "nodeId": "", "name": "", "showStatusActivities": false, @@ -19,16 +19,16 @@ "y": 150, "wires": [ [ - "e08b1007.3f569", - "ecf4f164.50cc4", - "d18aff68.9163d" + "440bd19c.02d958", + "68a82f0.082145", + "6b32b938.3c15c8" ] ] }, { - "id": "ecf4f164.50cc4", + "id": "68a82f0.082145", "type": "debug", - "z": "7df7b82d.f08ee8", + "z": "baed51be.8047f8", "name": "", "active": true, "console": "false", @@ -38,9 +38,10 @@ "wires": [] }, { - "id": "8ed0bed9.83887", + "id": "ec321f89.75b698", "type": "OPCUA-IIoT-Inject", - "z": "7df7b82d.f08ee8", + "z": "baed51be.8047f8", + "injectType": "inject", "payload": "", "payloadType": "date", "topic": "ns=0;i=85", @@ -49,31 +50,34 @@ "once": true, "startDelay": "", "name": "Root", + "addressSpaceItems": [], "x": 150, "y": 150, "wires": [ [ - "c36a769d.746fb8" + "ef59a43b.6daa18" ] ] }, { - "id": "d18aff68.9163d", + "id": "6b32b938.3c15c8", "type": "OPCUA-IIoT-Response", - "z": "7df7b82d.f08ee8", + "z": "baed51be.8047f8", "name": "", + "showStatusActivities": false, + "showErrors": false, "x": 540, "y": 90, "wires": [ [ - "74d0e420.4e86dc" + "92cbaef5.395088" ] ] }, { - "id": "74d0e420.4e86dc", + "id": "92cbaef5.395088", "type": "debug", - "z": "7df7b82d.f08ee8", + "z": "baed51be.8047f8", "name": "", "active": false, "console": "false", @@ -83,10 +87,10 @@ "wires": [] }, { - "id": "e08b1007.3f569", + "id": "440bd19c.02d958", "type": "ui_template", - "z": "7df7b82d.f08ee8", - "group": "ccb63f42.103f6", + "z": "baed51be.8047f8", + "group": "b361a5b.9df1b58", "name": "", "order": 0, "width": 0, @@ -99,15 +103,15 @@ "y": 90, "wires": [ [ - "c36a769d.746fb8" + "ef59a43b.6daa18" ] ] }, { - "id": "a8c14b28.eecbc8", - "type": "OPCUA-IIoT-Server", - "z": "7df7b82d.f08ee8", - "port": "55388", + "id": "b36fe060.4a33e8", + "type": "OPCUA-IIoT-Flex-Server", + "z": "baed51be.8047f8", + "port": "55390", "endpoint": "", "acceptExternalCommands": true, "maxAllowedSessionNumber": "", @@ -120,35 +124,37 @@ "allowAnonymous": true, "isAuditing": false, "users": [], - "x": 130, - "y": 50, + "addressSpaceScript": "function constructAlarmAddressSpace(server, addressSpace, eventObjects) {\n // server = the created node-opcua server\n // addressSpace = script placeholder\n // eventObjects = to hold event variables in memory from this script\n \n // internal global sandbox objects are \n // node = node of the flex server, \n // coreServer = core iiot server object for debug and access to nodeOPCUA,\n // and scriptObjects to hold variables and functions\n \n // globals are to find on node.context().global and should be initialized here\n node.context().global.set(\"TestOPCUAVarValue\", {})\n \n coreServer.internalDebugLog('init dynamic address space')\n node.warn('construct new address space for OPC UA')\n \n // from here - see the node-opcua docs how to build address sapces\n let tanks = addressSpace.addObject({\n browseName: 'Tanks',\n description: 'The Object representing some tanks',\n organizedBy: addressSpace.rootFolder.objects,\n notifierOf: addressSpace.rootFolder.objects.server\n })\n \n let oilTankLevel = addressSpace.addVariable({\n browseName: 'OilTankLevel',\n displayName: 'Oil Tank Level',\n description: 'Fill level in percentage (0% to 100%) of the oil tank',\n propertyOf: tanks,\n dataType: 'Double',\n eventSourceOf: tanks\n })\n \n // ---------------------------------------------------------------------------------\n // Let's create a exclusive Limit Alarm that automatically raise itself\n // when the tank level is out of limit\n // ---------------------------------------------------------------------------------\n let exclusiveLimitAlarmType = addressSpace.findEventType('ExclusiveLimitAlarmType')\n node.assert(exclusiveLimitAlarmType !== null)\n \n let oilTankLevelCondition = addressSpace.instantiateExclusiveLimitAlarm(exclusiveLimitAlarmType, {\n componentOf: tanks,\n conditionSource: oilTankLevel,\n browseName: 'OilTankLevelCondition',\n displayName: 'Oil Tank Level Condition',\n description: 'ExclusiveLimitAlarmType Condition',\n conditionName: 'OilLevelCondition',\n optionals: [\n 'ConfirmedState', 'Confirm' // confirm state and confirm Method\n ],\n inputNode: oilTankLevel, // the letiable that will be monitored for change\n highHighLimit: 0.9,\n highLimit: 0.8,\n lowLimit: 0.2\n })\n \n // --------------------------------------------------------------\n // Let's create a second letiable with no Exclusive alarm\n // --------------------------------------------------------------\n let gasTankLevel = addressSpace.addVariable({\n browseName: 'GasTankLevel',\n displayName: 'Gas Tank Level',\n description: 'Fill level in percentage (0% to 100%) of the gas tank',\n propertyOf: tanks,\n dataType: 'Double',\n eventSourceOf: tanks\n })\n \n let nonExclusiveLimitAlarmType = addressSpace.findEventType('NonExclusiveLimitAlarmType')\n node.assert(nonExclusiveLimitAlarmType !== null)\n \n let gasTankLevelCondition = addressSpace.instantiateNonExclusiveLimitAlarm(nonExclusiveLimitAlarmType, {\n componentOf: tanks,\n conditionSource: gasTankLevel,\n browseName: 'GasTankLevelCondition',\n displayName: 'Gas Tank Level Condition',\n description: 'NonExclusiveLimitAlarmType Condition',\n conditionName: 'GasLevelCondition',\n optionals: [\n 'ConfirmedState', 'Confirm' // confirm state and confirm Method\n ],\n inputNode: gasTankLevel, // the letiable that will be monitored for change\n highHighLimit: 0.9,\n highLimit: 0.8,\n lowLimit: 0.2\n })\n \n // variable with value\n if(scriptObjects.testReadWrite === undefined || scriptObjects.testReadWrite === null) {\n scriptObjects.testReadWrite = 1000.0\n }\n \n let myVariables = addressSpace.addObject({\n browseName: 'MyVariables',\n description: 'The Object representing some variables',\n organizedBy: addressSpace.rootFolder.objects,\n notifierOf: addressSpace.rootFolder.objects.server\n })\n \n if(coreServer.core) {\n addressSpace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=4;s=TestReadWrite',\n browseName: 'TestReadWrite',\n displayName: 'Test Read and Write',\n dataType: 'Double',\n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n value: scriptObjects.testReadWrite\n })\n },\n set: function (variant) {\n scriptObjects.testReadWrite = parseFloat(variant.value)\n return coreServer.core.nodeOPCUA.StatusCodes.Good\n }\n }\n \n })\n \n let memoryVariable = addressSpace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=4;s=free_memory',\n browseName: 'FreeMemory',\n displayName: 'Free Memory',\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n \n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n value: coreServer.core.availableMemory()\n })\n }\n }\n })\n addressSpace.installHistoricalDataNode(memoryVariable)\n \n let globalValue = node.context().global.get(\"TestOPCUAVarValue\")\n if(globalValue) {\n coreServer.internalDebugLog('init TestOPCUAVarValue in address space')\n let testOPCUAVarValue = addressSpace.addVariable({\n componentOf: myVariables,\n nodeId: 'ns=4;s=TestOPCUAVarValue',\n browseName: 'TestOPCUAVarValue',\n displayName: 'Test OPC UA Variable Value',\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n \n value: {\n get: function () {\n return new coreServer.core.nodeOPCUA.Variant({\n dataType: coreServer.core.nodeOPCUA.DataType.Double,\n value: node.context().global.get(\"TestOPCUAVarValue\").value\n })\n },\n set: function (variant) {\n scriptObjects.testReadWrite = parseFloat(variant.value)\n return coreServer.core.nodeOPCUA.StatusCodes.Good\n }\n }\n })\n addressSpace.installHistoricalDataNode(memoryVariable)\n }\n \n } else {\n coreServer.internalDebugLog('coreServer.core needed for coreServer.core.nodeOPCUA')\n }\n\n // hold event objects in memory \n eventObjects.oilTankLevel = oilTankLevel\n eventObjects.oilTankLevelCondition = oilTankLevelCondition\n \n eventObjects.gasTankLevel = gasTankLevel\n eventObjects.gasTankLevelCondition = gasTankLevelCondition\n}", + "x": 350, + "y": 40, "wires": [ - [], [] ] }, { - "id": "e9e8c12d.755ba", + "id": "6bb27954.03ca3", "type": "OPCUA-IIoT-Connector", "z": "", - "endpoint": "opc.tcp://localhost:55388/", + "endpoint": "opc.tcp://localhost:55390/", "keepSessionAlive": true, - "loginEnabled": true, - "name": "LOCAL SERVER", + "loginEnabled": false, + "securityPolicy": "None", + "securityMode": "NONE", + "name": "LOCAL SERVER 55390", "showStatusActivities": false, "showErrors": false }, { - "id": "ccb63f42.103f6", + "id": "b361a5b.9df1b58", "type": "ui_group", "z": "", "name": "Default", - "tab": "ea4b4624.7d48b8", + "tab": "8113e46.2340318", "disp": true, "width": "10" }, { - "id": "ea4b4624.7d48b8", + "id": "8113e46.2340318", "type": "ui_tab", "z": "", "name": "Home", diff --git a/examples/opcua-iiot-listener.json b/examples/opcua-iiot-listener.json index ba168ced..20cf8770 100644 --- a/examples/opcua-iiot-listener.json +++ b/examples/opcua-iiot-listener.json @@ -1,16 +1,16 @@ [ { - "id": "4f332aaa.b91bd4", + "id": "28510964.c2d406", "type": "tab", "label": "IIoT OPC UA Listener", "disabled": false, "info": "" }, { - "id": "395454b7.6c33fc", + "id": "ec808198.810918", "type": "OPCUA-IIoT-Listener", - "z": "4f332aaa.b91bd4", - "connector": "31ab10c.c0f77f", + "z": "28510964.c2d406", + "connector": "ab1b99f6.8afa1", "action": "subscribe", "queueSize": "10", "name": "", @@ -23,25 +23,25 @@ "y": 294, "wires": [ [ - "d2f0590e.80eef8", - "4d4d2cd0.a4cf74", - "cda23028.cbd1b", - "6cbbe297.d5099c", - "d0f2797b.ff3e98", - "4fcaecbf.9404c4" + "72cff5b0.633814", + "7aece9bd.aaf228", + "e6460dcf.e925d", + "1b69f02f.ff8ba8", + "904cd7d.919fba8", + "4f70289f.396d08" ], [ - "4d63af0a.c8064", - "c46dc1df.d76a6" + "9a3153b1.d4f708", + "40a5a4f5.e74c9c" ] ] }, { - "id": "79bfaf3.c057d5", + "id": "cff793fc.ad52", "type": "ui_gauge", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", - "group": "3e4268c1.a64498", + "group": "550add88.d8b784", "order": 1, "width": "0", "height": "0", @@ -63,24 +63,24 @@ "wires": [] }, { - "id": "4d63af0a.c8064", + "id": "9a3153b1.d4f708", "type": "OPCUA-IIoT-Response", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "x": 642, "y": 432, "wires": [ [ - "e923b9ce.622f78" + "e20c6ff0.a9566" ] ] }, { - "id": "76da45e7.983bcc", + "id": "dc86493a.6020b8", "type": "ui_button", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "Node Two", - "group": "3e4268c1.a64498", + "group": "550add88.d8b784", "order": 2, "width": 0, "height": 0, @@ -96,17 +96,17 @@ "y": 252, "wires": [ [ - "244ba6b3.7daa6a" + "f234606.98a52a" ] ] }, { - "id": "58c9de6a.bd8a8", + "id": "2a6921c3.a4139e", "type": "ui_numeric", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "label": "Sessions", - "group": "dcc48df4.9c63", + "group": "b36408f5.27074", "order": 1, "width": 0, "height": 0, @@ -123,11 +123,11 @@ ] }, { - "id": "77dd5733.caf508", + "id": "eb102e29.0bf73", "type": "ui_button", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "Node One", - "group": "dcc48df4.9c63", + "group": "b36408f5.27074", "order": 2, "width": 0, "height": 0, @@ -143,14 +143,14 @@ "y": 198, "wires": [ [ - "f30efad0.afa408" + "9a0dfd26.bcaea" ] ] }, { - "id": "ee24509d.512db", + "id": "a1486020.c96ac", "type": "OPCUA-IIoT-Inject", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "injectType": "listen", "payload": "{ \"interval\": 500, \"queueSize\": 10 }", "payloadType": "json", @@ -176,14 +176,14 @@ "y": 294, "wires": [ [ - "395454b7.6c33fc" + "ec808198.810918" ] ] }, { - "id": "e923b9ce.622f78", + "id": "e20c6ff0.a9566", "type": "debug", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "active": false, "console": "false", @@ -193,9 +193,9 @@ "wires": [] }, { - "id": "d2f0590e.80eef8", + "id": "72cff5b0.633814", "type": "OPCUA-IIoT-Result-Filter", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "nodeId": "ns=4;s=TestReadWrite", "datatype": "Double", "withPrecision": true, @@ -212,16 +212,16 @@ "y": 174, "wires": [ [ - "79bfaf3.c057d5", - "e00c4310.ff6d5" + "cff793fc.ad52", + "935e4c6f.63215" ], [] ] }, { - "id": "4d4d2cd0.a4cf74", + "id": "7aece9bd.aaf228", "type": "debug", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "active": false, "console": "false", @@ -231,9 +231,9 @@ "wires": [] }, { - "id": "c46dc1df.d76a6", + "id": "40a5a4f5.e74c9c", "type": "debug", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "active": false, "console": "false", @@ -243,9 +243,9 @@ "wires": [] }, { - "id": "cda23028.cbd1b", + "id": "e6460dcf.e925d", "type": "OPCUA-IIoT-Result-Filter", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "nodeId": "ns=0;i=2277", "datatype": "UInt32", "withPrecision": true, @@ -260,28 +260,28 @@ "y": 228, "wires": [ [ - "58c9de6a.bd8a8" + "2a6921c3.a4139e" ], [] ] }, { - "id": "6cbbe297.d5099c", + "id": "1b69f02f.ff8ba8", "type": "OPCUA-IIoT-Response", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "x": 642, "y": 114, "wires": [ [ - "adf645cf.520f18" + "4b72a1a0.0781f" ] ] }, { - "id": "adf645cf.520f18", + "id": "4b72a1a0.0781f", "type": "debug", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "active": false, "console": "false", @@ -291,9 +291,9 @@ "wires": [] }, { - "id": "f7a98fe3.ab30e", + "id": "96d54219.68d1b", "type": "OPCUA-IIoT-Server", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "port": "55388", "endpoint": "", "acceptExternalCommands": true, @@ -315,9 +315,9 @@ ] }, { - "id": "f30efad0.afa408", + "id": "9a0dfd26.bcaea", "type": "OPCUA-IIoT-Node", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "nodeId": "ns=0;i=2277", "datatype": "NodeId", "value": "", @@ -327,14 +327,14 @@ "y": 198, "wires": [ [ - "395454b7.6c33fc" + "ec808198.810918" ] ] }, { - "id": "244ba6b3.7daa6a", + "id": "f234606.98a52a", "type": "OPCUA-IIoT-Node", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "nodeId": "ns=4;s=TestReadWrite", "datatype": "NodeId", "value": "", @@ -344,16 +344,16 @@ "y": 252, "wires": [ [ - "395454b7.6c33fc" + "ec808198.810918" ] ] }, { - "id": "a258803e.c366a", + "id": "df887982.f8e98", "type": "ui_gauge", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", - "group": "15936036.5bad2", + "group": "a4b70df0.e99228", "order": 1, "width": "0", "height": "0", @@ -375,9 +375,9 @@ "wires": [] }, { - "id": "d0f2797b.ff3e98", + "id": "904cd7d.919fba8", "type": "OPCUA-IIoT-Result-Filter", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "nodeId": "ns=4;s=FullCounter", "datatype": "Int32", "withPrecision": true, @@ -394,16 +394,16 @@ "y": 282, "wires": [ [ - "a258803e.c366a", - "79c0d078.8cabc" + "df887982.f8e98", + "83e121a3.de2b58" ], [] ] }, { - "id": "4fcaecbf.9404c4", + "id": "4f70289f.396d08", "type": "OPCUA-IIoT-Result-Filter", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "nodeId": "ns=4;s=Counter", "datatype": "UInt16", "withPrecision": true, @@ -420,17 +420,17 @@ "y": 336, "wires": [ [ - "e9246e90.5884c" + "4614fa4.85b9504" ], [] ] }, { - "id": "e9246e90.5884c", + "id": "4614fa4.85b9504", "type": "ui_gauge", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", - "group": "15936036.5bad2", + "group": "a4b70df0.e99228", "order": 1, "width": "0", "height": "0", @@ -452,9 +452,9 @@ "wires": [] }, { - "id": "79c0d078.8cabc", + "id": "83e121a3.de2b58", "type": "debug", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "active": false, "console": "false", @@ -464,9 +464,9 @@ "wires": [] }, { - "id": "e00c4310.ff6d5", + "id": "935e4c6f.63215", "type": "debug", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "", "active": false, "console": "false", @@ -476,50 +476,52 @@ "wires": [] }, { - "id": "31ab10c.c0f77f", + "id": "ab1b99f6.8afa1", "type": "OPCUA-IIoT-Connector", "z": "", "endpoint": "opc.tcp://localhost:55388/", "keepSessionAlive": true, - "loginEnabled": true, + "loginEnabled": false, + "securityPolicy": "None", + "securityMode": "NONE", "name": "LOCAL SERVER", "showStatusActivities": false, "showErrors": false }, { - "id": "3e4268c1.a64498", + "id": "550add88.d8b784", "type": "ui_group", "z": "", "name": "GenData", - "tab": "a92a2d46.79c68", + "tab": "7bc369d6.c7be8", "order": 1, "disp": true, "width": "6" }, { - "id": "dcc48df4.9c63", + "id": "b36408f5.27074", "type": "ui_group", "z": "", "name": "Sessions", - "tab": "a92a2d46.79c68", + "tab": "7bc369d6.c7be8", "order": 2, "disp": true, "width": "4" }, { - "id": "15936036.5bad2", + "id": "a4b70df0.e99228", "type": "ui_group", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "Counters (Start Abo)", - "tab": "a92a2d46.79c68", + "tab": "7bc369d6.c7be8", "order": 3, "disp": true, "width": "6" }, { - "id": "a92a2d46.79c68", + "id": "7bc369d6.c7be8", "type": "ui_tab", - "z": "4f332aaa.b91bd4", + "z": "28510964.c2d406", "name": "Node-RED OPC UA IIoT", "icon": "dashboard" } diff --git a/examples/opcua-iiot-method-caller.json b/examples/opcua-iiot-method-caller.json index 9c38fdd1..f376e582 100644 --- a/examples/opcua-iiot-method-caller.json +++ b/examples/opcua-iiot-method-caller.json @@ -1,15 +1,15 @@ [ { - "id": "9f1dab9d.97fac", + "id": "93430a9d.48e0d8", "type": "tab", "label": "IIoT OPC UA Method Call", "disabled": false, "info": "" }, { - "id": "16840277.94e98e", + "id": "7f913a50.4c2484", "type": "debug", - "z": "9f1dab9d.97fac", + "z": "93430a9d.48e0d8", "name": "", "active": true, "console": "false", @@ -19,10 +19,10 @@ "wires": [] }, { - "id": "1dacbf1b.0b3f01", + "id": "15af6265.abcf8e", "type": "OPCUA-IIoT-Method-Caller", - "z": "9f1dab9d.97fac", - "connector": "82f5412f.6564f8", + "z": "93430a9d.48e0d8", + "connector": "9f759b99.9d00e8", "objectId": "ns=4;i=1234", "methodId": "ns=4;i=12345", "value": "", @@ -43,15 +43,15 @@ "y": 140, "wires": [ [ - "16840277.94e98e", - "23c467db.f4287" + "7f913a50.4c2484", + "bd612574.8702f8" ] ] }, { - "id": "23c467db.f4287", + "id": "bd612574.8702f8", "type": "OPCUA-IIoT-Response", - "z": "9f1dab9d.97fac", + "z": "93430a9d.48e0d8", "name": "", "showStatusActivities": false, "showErrors": false, @@ -59,14 +59,14 @@ "y": 140, "wires": [ [ - "83f9aeba.fb88a" + "edb93a1f.8c73f8" ] ] }, { - "id": "83f9aeba.fb88a", + "id": "edb93a1f.8c73f8", "type": "debug", - "z": "9f1dab9d.97fac", + "z": "93430a9d.48e0d8", "name": "", "active": false, "console": "false", @@ -76,9 +76,9 @@ "wires": [] }, { - "id": "7b860fbc.baba08", + "id": "ee5f848e.12ee9", "type": "OPCUA-IIoT-Inject", - "z": "9f1dab9d.97fac", + "z": "93430a9d.48e0d8", "injectType": "inject", "payload": "", "payloadType": "date", @@ -93,14 +93,14 @@ "y": 140, "wires": [ [ - "1dacbf1b.0b3f01" + "15af6265.abcf8e" ] ] }, { - "id": "5c0eb880.ae3358", + "id": "1316bd2d.8c892b", "type": "inject", - "z": "9f1dab9d.97fac", + "z": "93430a9d.48e0d8", "name": "", "topic": "", "payload": "", @@ -112,30 +112,30 @@ "y": 200, "wires": [ [ - "e3999294.0851b" + "dc85d337.128bd8" ] ] }, { - "id": "e3999294.0851b", + "id": "dc85d337.128bd8", "type": "function", - "z": "9f1dab9d.97fac", - "name": "bark six time with volume twelve", + "z": "93430a9d.48e0d8", + "name": "bark six times with volume twelve", "func": "msg.payload = {\n objectId: 'ns=4;i=1234',\n methodId: 'ns=4;i=12345',\n inputArguments: [\n {name: 'barks', dataType:'UInt32', value:'6'},\n {name: 'volume', dataType:'UInt32', value:'12'}\n ],\n methodType: 'basic'\n}\nreturn msg;", "outputs": 1, "noerr": 0, - "x": 350, + "x": 360, "y": 200, "wires": [ [ - "1dacbf1b.0b3f01" + "15af6265.abcf8e" ] ] }, { - "id": "94a2cfac.db9368", + "id": "818be5ef.f6e6e", "type": "comment", - "z": "9f1dab9d.97fac", + "z": "93430a9d.48e0d8", "name": "Information", "info": "If you have none OPC UA server on other tabs, \nplease drag&drop an OPC UA Server \nfrom the package nodes on this tab!", "x": 130, @@ -143,7 +143,7 @@ "wires": [] }, { - "id": "82f5412f.6564f8", + "id": "9f759b99.9d00e8", "type": "OPCUA-IIoT-Connector", "z": "", "endpoint": "opc.tcp://localhost:55388/UA/NodeREDIIOTServer", diff --git a/examples/opcua-iiot-write.json b/examples/opcua-iiot-write.json index e45075fb..cad57e60 100644 --- a/examples/opcua-iiot-write.json +++ b/examples/opcua-iiot-write.json @@ -1,16 +1,16 @@ [ { - "id": "241adbfe.ae3c04", + "id": "d428d9ac.f5d008", "type": "tab", "label": "IIoT OPC UA Write", "disabled": false, "info": "" }, { - "id": "7401939c.1383dc", + "id": "c84a6037.6e4188", "type": "OPCUA-IIoT-Write", - "z": "241adbfe.ae3c04", - "connector": "31ab10c.c0f77f", + "z": "d428d9ac.f5d008", + "connector": "c818b758.0d809", "name": "", "showStatusActivities": false, "showErrors": true, @@ -18,17 +18,17 @@ "y": 114, "wires": [ [ - "badce523.15dd28", - "35b8a482.16587c", - "1e166e3d.8533f2", - "bf523d27.b669e" + "f8f84161.cfba28", + "1c0935e.16aa64a", + "fe233d72.01ee58", + "36da9780.dd4c98" ] ] }, { - "id": "48a5ef83.88bda", + "id": "a1270919.00b3b", "type": "OPCUA-IIoT-Inject", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "injectType": "write", "payload": "", "payloadType": "date", @@ -49,14 +49,14 @@ "y": 114, "wires": [ [ - "77aeabd2.77ded4" + "8133d2ca.b93378" ] ] }, { - "id": "bf523d27.b669e", + "id": "36da9780.dd4c98", "type": "debug", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "", "active": false, "console": "false", @@ -66,9 +66,9 @@ "wires": [] }, { - "id": "badce523.15dd28", + "id": "f8f84161.cfba28", "type": "debug", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "", "active": false, "console": "false", @@ -78,9 +78,9 @@ "wires": [] }, { - "id": "35b8a482.16587c", + "id": "1c0935e.16aa64a", "type": "debug", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "", "active": false, "console": "false", @@ -90,9 +90,9 @@ "wires": [] }, { - "id": "76dd99f3.3752b8", + "id": "5aa9abc2.6a40cc", "type": "debug", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "", "active": false, "console": "false", @@ -102,22 +102,22 @@ "wires": [] }, { - "id": "1e166e3d.8533f2", + "id": "fe233d72.01ee58", "type": "OPCUA-IIoT-Response", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "", "x": 670, "y": 114, "wires": [ [ - "e5940274.dfdbc" + "c5a7f41e.8c4d4" ] ] }, { - "id": "e5940274.dfdbc", + "id": "c5a7f41e.8c4d4", "type": "debug", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "", "active": false, "console": "false", @@ -127,9 +127,9 @@ "wires": [] }, { - "id": "77aeabd2.77ded4", + "id": "8133d2ca.b93378", "type": "data-generator", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "dGen", "field": "valuesToWrite", "fieldType": "msg", @@ -139,15 +139,15 @@ "y": 114, "wires": [ [ - "7401939c.1383dc", - "76dd99f3.3752b8" + "c84a6037.6e4188", + "5aa9abc2.6a40cc" ] ] }, { - "id": "c77d752.ac97788", + "id": "abb9db48.10dc18", "type": "comment", - "z": "241adbfe.ae3c04", + "z": "d428d9ac.f5d008", "name": "install node-red-node-data-generator", "info": "", "x": 350, @@ -155,12 +155,14 @@ "wires": [] }, { - "id": "31ab10c.c0f77f", + "id": "c818b758.0d809", "type": "OPCUA-IIoT-Connector", "z": "", "endpoint": "opc.tcp://localhost:55388/", "keepSessionAlive": true, - "loginEnabled": true, + "loginEnabled": false, + "securityPolicy": "None", + "securityMode": "NONE", "name": "LOCAL SERVER", "showStatusActivities": false, "showErrors": false diff --git a/gulpfile.js b/gulpfile.js index 16da1ce3..8a246fe9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -17,14 +17,15 @@ const babel = require('gulp-babel') const sequence = require('gulp-sequence') const sourcemaps = require('gulp-sourcemaps') const pump = require('pump') +const replace = require('gulp-replace') gulp.task('default', function () { // place code for your default task here }) -gulp.task('docs', sequence('doc', 'docIcons', 'docExamples', 'docImages')) +gulp.task('docs', sequence('doc', 'docIcons', 'docImages')) gulp.task('build', sequence('clean', 'web', 'nodejs', 'locale')) -gulp.task('publish', sequence('build', 'maps', 'public', 'icons', 'docs', 'releaseExamples')) +gulp.task('publish', sequence('build', 'maps', 'public', 'icons', 'docs')) gulp.task('icons', function () { return gulp.src('src/icons/**/*').pipe(gulp.dest('opcuaIIoT/icons')) @@ -34,14 +35,6 @@ gulp.task('docIcons', function () { return gulp.src('src/icons/**/*').pipe(gulp.dest('docs/gen/icons')) }) -gulp.task('docExamples', function () { - return gulp.src('examples/**/*').pipe(gulp.dest('docs/gen/examples')) -}) - -gulp.task('releaseExamples', function () { - return gulp.src('examples/**/*').pipe(gulp.dest('opcuaIIoT/examples')) -}) - gulp.task('docImages', function () { return gulp.src('images/**/*').pipe(gulp.dest('docs/gen/images')) }) @@ -81,9 +74,12 @@ gulp.task('web', function () { }) gulp.task('nodejs', function (cb) { + let anchor = '// SOURCE-MAP-REQUIRED' + pump([ gulp.src('src/**/*.js') .pipe(sourcemaps.init({loadMaps: true})) + .pipe(replace(anchor, 'require(\'source-map-support\').install()')) .pipe(babel({presets: ['es2015']})) .pipe(uglify()) .pipe(sourcemaps.write('maps')), gulp.dest('opcuaIIoT')], diff --git a/package.json b/package.json index 3842f879..5d947fb4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red-contrib-iiot-opcua", - "version": "1.3.2", + "version": "1.3.3", "private": false, "description": "The next evolution IoT/IIoT OPC UA toolbox package for Node-RED based on node-opcua.", "repository": { @@ -14,6 +14,7 @@ "debug": "3.1.0", "easy-table": "1.1.0", "node-opcua": "0.1.1-0", + "source-map-support": "0.5.0", "treeify": "1.0.1", "underscore": "1.8.3", "vm2": "3.5.2" @@ -93,6 +94,7 @@ "gulp-htmlmin": "^4.0.0", "gulp-jsdoc3": "^1.0.1", "gulp-obfuscate": "^0.2.9", + "gulp-replace": "^0.6.1", "gulp-sequence": "^1.0.0", "gulp-sourcemaps": "^2.6.3", "gulp-uglify": "^3.0.0", diff --git a/src/core/opcua-iiot-core-browser.js b/src/core/opcua-iiot-core-browser.js index dfdbbfc3..bf0dc53f 100644 --- a/src/core/opcua-iiot-core-browser.js +++ b/src/core/opcua-iiot-core-browser.js @@ -7,6 +7,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-client.js b/src/core/opcua-iiot-core-client.js index 67534963..3e611be8 100644 --- a/src/core/opcua-iiot-core-client.js +++ b/src/core/opcua-iiot-core-client.js @@ -7,6 +7,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-connector.js b/src/core/opcua-iiot-core-connector.js index 80a4fadb..2e865008 100644 --- a/src/core/opcua-iiot-core-connector.js +++ b/src/core/opcua-iiot-core-connector.js @@ -6,6 +6,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-filter.js b/src/core/opcua-iiot-core-filter.js index 8b52376f..d74ecd11 100644 --- a/src/core/opcua-iiot-core-filter.js +++ b/src/core/opcua-iiot-core-filter.js @@ -6,6 +6,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-inject.js b/src/core/opcua-iiot-core-inject.js index 71cd53f7..3533a75f 100644 --- a/src/core/opcua-iiot-core-inject.js +++ b/src/core/opcua-iiot-core-inject.js @@ -6,6 +6,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-listener.js b/src/core/opcua-iiot-core-listener.js index 80eb7062..b2829ae4 100644 --- a/src/core/opcua-iiot-core-listener.js +++ b/src/core/opcua-iiot-core-listener.js @@ -7,6 +7,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-method.js b/src/core/opcua-iiot-core-method.js index f3795b6d..a44b467b 100644 --- a/src/core/opcua-iiot-core-method.js +++ b/src/core/opcua-iiot-core-method.js @@ -6,6 +6,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-response.js b/src/core/opcua-iiot-core-response.js index 26b3e253..a4aeba17 100644 --- a/src/core/opcua-iiot-core-response.js +++ b/src/core/opcua-iiot-core-response.js @@ -7,6 +7,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-server-isa95.js b/src/core/opcua-iiot-core-server-isa95.js index 3b88139e..8358c53e 100644 --- a/src/core/opcua-iiot-core-server-isa95.js +++ b/src/core/opcua-iiot-core-server-isa95.js @@ -7,6 +7,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core-server.js b/src/core/opcua-iiot-core-server.js index dadcb31f..bad01e79 100644 --- a/src/core/opcua-iiot-core-server.js +++ b/src/core/opcua-iiot-core-server.js @@ -7,6 +7,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/core/opcua-iiot-core.js b/src/core/opcua-iiot-core.js index 76458809..37c978f1 100644 --- a/src/core/opcua-iiot-core.js +++ b/src/core/opcua-iiot-core.js @@ -7,6 +7,7 @@ node-red-contrib-iiot-opcua */ 'use strict' +// SOURCE-MAP-REQUIRED /** * Nested namespace settings. diff --git a/src/opcua-iiot-browser.js b/src/opcua-iiot-browser.js index 4860de48..fbde76ab 100644 --- a/src/opcua-iiot-browser.js +++ b/src/opcua-iiot-browser.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreBrowser = require('./core/opcua-iiot-core-browser') let browserEntries = [] let nodesToRead = [] diff --git a/src/opcua-iiot-connector.js b/src/opcua-iiot-connector.js index ea072b8a..94550041 100644 --- a/src/opcua-iiot-connector.js +++ b/src/opcua-iiot-connector.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreConnector = require('./core/opcua-iiot-core-connector') // let OPCUADiscoveryServer = require('lib/server/opcua_discovery_server').OPCUADiscoveryServer diff --git a/src/opcua-iiot-event.js b/src/opcua-iiot-event.js index bac66c78..c1a46e1d 100644 --- a/src/opcua-iiot-event.js +++ b/src/opcua-iiot-event.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreListener = require('./core/opcua-iiot-core-listener') let _ = require('underscore') diff --git a/src/opcua-iiot-flex-server.js b/src/opcua-iiot-flex-server.js index a902cb54..688dfa23 100644 --- a/src/opcua-iiot-flex-server.js +++ b/src/opcua-iiot-flex-server.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreServer = require('./core/opcua-iiot-core-server') let path = require('path') let os = require('os') diff --git a/src/opcua-iiot-inject.js b/src/opcua-iiot-inject.js index 2904d8f5..08da091b 100644 --- a/src/opcua-iiot-inject.js +++ b/src/opcua-iiot-inject.js @@ -15,6 +15,7 @@ */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreInject = require('./core/opcua-iiot-core-inject') let cron = require('cron') let _ = require('underscore') diff --git a/src/opcua-iiot-listener.js b/src/opcua-iiot-listener.js index 77178ee1..33a3a7b5 100644 --- a/src/opcua-iiot-listener.js +++ b/src/opcua-iiot-listener.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreListener = require('./core/opcua-iiot-core-listener') let Map = require('collections/map') diff --git a/src/opcua-iiot-method-caller.js b/src/opcua-iiot-method-caller.js index 8480fdb1..9510c563 100644 --- a/src/opcua-iiot-method-caller.js +++ b/src/opcua-iiot-method-caller.js @@ -13,6 +13,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreMethod = require('./core/opcua-iiot-core-method') function OPCUAIIoTMethodCaller (config) { diff --git a/src/opcua-iiot-node.js b/src/opcua-iiot-node.js index 6aabd71a..3b942eb6 100644 --- a/src/opcua-iiot-node.js +++ b/src/opcua-iiot-node.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let core = require('./core/opcua-iiot-core') let _ = require('underscore') diff --git a/src/opcua-iiot-read.js b/src/opcua-iiot-read.js index f6ff2722..75433423 100644 --- a/src/opcua-iiot-read.js +++ b/src/opcua-iiot-read.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreClient = require('./core/opcua-iiot-core-client') function OPCUAIIoTRead (config) { diff --git a/src/opcua-iiot-response.js b/src/opcua-iiot-response.js index 1a5f0ace..75d3308e 100644 --- a/src/opcua-iiot-response.js +++ b/src/opcua-iiot-response.js @@ -13,6 +13,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreResponse = require('./core/opcua-iiot-core-response') const EMPTY_LIST = 0 diff --git a/src/opcua-iiot-result-filter.js b/src/opcua-iiot-result-filter.js index 8ada0538..17aa9f24 100644 --- a/src/opcua-iiot-result-filter.js +++ b/src/opcua-iiot-result-filter.js @@ -13,6 +13,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreFilter = require('./core/opcua-iiot-core-filter') let _ = require('underscore') diff --git a/src/opcua-iiot-server-aso.js b/src/opcua-iiot-server-aso.js index 02cd2262..0542ee53 100644 --- a/src/opcua-iiot-server-aso.js +++ b/src/opcua-iiot-server-aso.js @@ -13,6 +13,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let core = require('./core/opcua-iiot-core') let _ = require('underscore') diff --git a/src/opcua-iiot-server-cmd.js b/src/opcua-iiot-server-cmd.js index 84acabaa..ae353561 100644 --- a/src/opcua-iiot-server-cmd.js +++ b/src/opcua-iiot-server-cmd.js @@ -13,6 +13,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let core = require('./core/opcua-iiot-core') function OPCUAIIoTCMD (config) { diff --git a/src/opcua-iiot-server-isa95.js b/src/opcua-iiot-server-isa95.js index 00373246..580f2328 100644 --- a/src/opcua-iiot-server-isa95.js +++ b/src/opcua-iiot-server-isa95.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreServer = require('./core/opcua-iiot-core-server') let path = require('path') let os = require('os') diff --git a/src/opcua-iiot-server.js b/src/opcua-iiot-server.js index 85b84845..db598eab 100644 --- a/src/opcua-iiot-server.js +++ b/src/opcua-iiot-server.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreServer = require('./core/opcua-iiot-core-server') let path = require('path') let os = require('os') diff --git a/src/opcua-iiot-write.js b/src/opcua-iiot-write.js index eb2049de..f6bd9089 100644 --- a/src/opcua-iiot-write.js +++ b/src/opcua-iiot-write.js @@ -14,6 +14,7 @@ * @param RED */ module.exports = function (RED) { + // SOURCE-MAP-REQUIRED let coreClient = require('./core/opcua-iiot-core-client') function OPCUAIIoTWrite (config) {