node-opcua-client-proxy 2.56.2 → 2.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/dist/object_explorer.js +103 -81
- package/dist/object_explorer.js.map +1 -1
- package/dist/proxy_base_node.d.ts +14 -2
- package/dist/proxy_base_node.js.map +1 -1
- package/package.json +16 -15
- package/source/common.ts +3 -3
- package/source/index.ts +6 -6
- package/source/object_explorer.ts +119 -96
- package/source/proxy_base_node.ts +15 -2
package/LICENSE
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2014-2021 Etienne Rossignon
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
-
this software and associated documentation files (the "Software"), to deal in
|
|
7
|
-
the Software without restriction, including without limitation the rights to
|
|
8
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
-
subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
17
|
-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
18
|
-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
19
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
20
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2014-2021 Etienne Rossignon
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
7
|
+
the Software without restriction, including without limitation the rights to
|
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
+
subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/dist/object_explorer.js
CHANGED
|
@@ -11,12 +11,13 @@ const node_opcua_service_call_1 = require("node-opcua-service-call");
|
|
|
11
11
|
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
12
12
|
const node_opcua_utils_1 = require("node-opcua-utils");
|
|
13
13
|
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
14
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
14
15
|
const proxy_1 = require("./proxy");
|
|
15
16
|
const proxy_variable_1 = require("./proxy_variable");
|
|
17
|
+
const doDebug = false;
|
|
18
|
+
const errorLog = (0, node_opcua_debug_1.make_errorLog)("Proxy");
|
|
19
|
+
const debugLog = (0, node_opcua_debug_1.make_debugLog)("Proxy");
|
|
16
20
|
const resultMask = (0, node_opcua_data_model_1.makeResultMask)("ReferenceType | IsForward | BrowseName | NodeClass | TypeDefinition");
|
|
17
|
-
function convertNodeIdToDataType(dataTypeId) {
|
|
18
|
-
return dataTypeId._dataType;
|
|
19
|
-
}
|
|
20
21
|
/**
|
|
21
22
|
* @method convertNodeIdToDataTypeAsync
|
|
22
23
|
*
|
|
@@ -97,36 +98,38 @@ function convertNodeIdToDataTypeAsync(session, dataTypeId, callback) {
|
|
|
97
98
|
});
|
|
98
99
|
});
|
|
99
100
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
101
|
+
function convertToVariant(value, arg, propName) {
|
|
102
|
+
const dataType = arg._basicDataType || node_opcua_variant_1.DataType.Null;
|
|
103
|
+
const arrayType = arg.valueRank === 1 ? node_opcua_variant_1.VariantArrayType.Array : arg.valueRank === -1 ? node_opcua_variant_1.VariantArrayType.Scalar : node_opcua_variant_1.VariantArrayType.Matrix;
|
|
104
|
+
if (value === undefined) {
|
|
105
|
+
throw new Error("expecting input argument ");
|
|
106
|
+
}
|
|
107
|
+
if (arrayType === node_opcua_variant_1.VariantArrayType.Array) {
|
|
108
|
+
if (!Array.isArray(value)) {
|
|
109
|
+
throw new Error("expecting value to be an Array or a TypedArray");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return new node_opcua_variant_1.Variant({ arrayType, dataType, value });
|
|
113
|
+
}
|
|
114
|
+
function convertToVariantArray(inputArgsDef, inputArgs) {
|
|
115
|
+
const inputArguments = inputArgsDef.map((arg) => {
|
|
116
|
+
const propName = (0, node_opcua_utils_1.lowerFirstLetter)(arg.name || "");
|
|
117
|
+
const value = inputArgs[propName];
|
|
118
|
+
return convertToVariant(value, arg, propName);
|
|
119
|
+
});
|
|
120
|
+
return inputArguments;
|
|
121
|
+
}
|
|
122
|
+
function makeFunction(obj, methodName) {
|
|
123
|
+
return function functionCaller(inputArgs, callback) {
|
|
124
|
+
const session = this.proxyManager.session;
|
|
108
125
|
(0, node_opcua_assert_1.assert)(typeof callback === "function");
|
|
126
|
+
const methodDef = this.$methods[methodName];
|
|
109
127
|
// convert input arguments into Variants
|
|
110
|
-
const inputArgsDef =
|
|
111
|
-
const inputArguments = inputArgsDef
|
|
112
|
-
const dataType = convertNodeIdToDataType(arg.dataType);
|
|
113
|
-
const arrayType = arg.valueRank === 1 ? node_opcua_variant_1.VariantArrayType.Array : node_opcua_variant_1.VariantArrayType.Scalar;
|
|
114
|
-
// xx console.log("xxx ",arg.toString());
|
|
115
|
-
const propName = (0, node_opcua_utils_1.lowerFirstLetter)(arg.name);
|
|
116
|
-
const value = inputArgs[propName];
|
|
117
|
-
if (value === undefined) {
|
|
118
|
-
throw new Error("expecting input argument " + propName);
|
|
119
|
-
}
|
|
120
|
-
if (arrayType === node_opcua_variant_1.VariantArrayType.Array) {
|
|
121
|
-
if (!Array.isArray(value)) {
|
|
122
|
-
throw new Error("expecting value to be an Array or a TypedArray");
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return new node_opcua_variant_1.Variant({ arrayType, dataType, value });
|
|
126
|
-
});
|
|
128
|
+
const inputArgsDef = methodDef.inputArguments || [];
|
|
129
|
+
const inputArguments = convertToVariantArray(inputArgsDef, inputArgs);
|
|
127
130
|
const methodToCall = new node_opcua_service_call_1.CallMethodRequest({
|
|
128
131
|
inputArguments,
|
|
129
|
-
methodId:
|
|
132
|
+
methodId: methodDef.nodeId,
|
|
130
133
|
objectId: obj.nodeId
|
|
131
134
|
});
|
|
132
135
|
session.call(methodToCall, (err, callResult) => {
|
|
@@ -139,73 +142,89 @@ function add_method(proxyManager, obj, reference, outerCallback) {
|
|
|
139
142
|
return callback(new Error("Error " + callResult.statusCode.toString()));
|
|
140
143
|
}
|
|
141
144
|
callResult.outputArguments = callResult.outputArguments || [];
|
|
142
|
-
|
|
143
|
-
if (callResult.outputArguments.length !== obj[name].outputArguments.length) {
|
|
145
|
+
if (callResult.outputArguments.length !== methodDef.outputArguments.length) {
|
|
144
146
|
return callback(new Error("Internal error callResult.outputArguments.length " +
|
|
145
147
|
callResult.outputArguments.length +
|
|
146
148
|
" " +
|
|
147
|
-
obj[
|
|
149
|
+
obj[methodName].outputArguments.length));
|
|
148
150
|
}
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
outputArgsDef.map((arg, index) => {
|
|
151
|
+
const output = {};
|
|
152
|
+
methodDef.outputArguments.map((arg, index) => {
|
|
152
153
|
const variant = callResult.outputArguments[index];
|
|
153
154
|
const propName = (0, node_opcua_utils_1.lowerFirstLetter)(arg.name);
|
|
154
|
-
|
|
155
|
+
output[propName] = variant.value;
|
|
155
156
|
});
|
|
156
|
-
callback(err,
|
|
157
|
+
callback(err, output);
|
|
157
158
|
});
|
|
158
159
|
};
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
convertNodeIdToDataTypeAsync(session, arg.dataType, (err, dataType) => {
|
|
165
|
-
if (!err) {
|
|
166
|
-
arg.dataType._dataType = dataType;
|
|
167
|
-
}
|
|
168
|
-
callback(err);
|
|
169
|
-
});
|
|
160
|
+
}
|
|
161
|
+
function extractDataType(session, arg, callback) {
|
|
162
|
+
if (arg.dataType && arg._basicDataType) {
|
|
163
|
+
setImmediate(callback); // already converted
|
|
164
|
+
return;
|
|
170
165
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
};
|
|
177
|
-
|
|
166
|
+
convertNodeIdToDataTypeAsync(session, arg.dataType, (err, dataType) => {
|
|
167
|
+
if (!err) {
|
|
168
|
+
arg._basicDataType = dataType;
|
|
169
|
+
}
|
|
170
|
+
callback(err || undefined);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @method add_method
|
|
175
|
+
* @private
|
|
176
|
+
*/
|
|
177
|
+
function add_method(proxyManager, obj, reference, outerCallback) {
|
|
178
|
+
const session = proxyManager.session;
|
|
179
|
+
const methodName = (0, node_opcua_utils_1.lowerFirstLetter)(reference.browseName.name);
|
|
180
|
+
let inputArguments = [];
|
|
181
|
+
let outputArguments = [];
|
|
178
182
|
// tslint:disable:no-shadowed-variable
|
|
179
183
|
async.series([
|
|
180
184
|
(callback) => {
|
|
181
|
-
session.getArgumentDefinition(reference.nodeId, (err,
|
|
185
|
+
session.getArgumentDefinition(reference.nodeId, (err, argumentDefinition) => {
|
|
182
186
|
// istanbul ignore next
|
|
183
187
|
if (err) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
+
errorLog("getArgumentDefinition failed ", err);
|
|
189
|
+
return callback(err);
|
|
190
|
+
}
|
|
191
|
+
// istanbul ignore next
|
|
192
|
+
if (!argumentDefinition) {
|
|
193
|
+
return callback(new Error("Internal Error"));
|
|
188
194
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
obj[name].outputArguments = outputArguments;
|
|
195
|
+
inputArguments = argumentDefinition.inputArguments || [];
|
|
196
|
+
outputArguments = argumentDefinition.outputArguments || [];
|
|
197
|
+
const _extractDataType = extractDataType.bind(null, session);
|
|
193
198
|
async.series([
|
|
194
|
-
(
|
|
195
|
-
|
|
196
|
-
},
|
|
197
|
-
(callback) => {
|
|
198
|
-
async.eachSeries(obj[name].outputArguments, extractDataType, (err) => callback(err));
|
|
199
|
-
}
|
|
199
|
+
(innerCallback) => async.eachSeries(inputArguments, _extractDataType, innerCallback),
|
|
200
|
+
(innerCallback) => async.eachSeries(outputArguments, _extractDataType, innerCallback)
|
|
200
201
|
], (err) => callback(err));
|
|
201
202
|
});
|
|
202
203
|
},
|
|
203
204
|
(callback) => {
|
|
205
|
+
const methodObj = {
|
|
206
|
+
browseName: methodName,
|
|
207
|
+
executableFlag: false,
|
|
208
|
+
func: makeFunction(obj, methodName),
|
|
209
|
+
nodeId: reference.nodeId,
|
|
210
|
+
inputArguments,
|
|
211
|
+
outputArguments
|
|
212
|
+
};
|
|
213
|
+
obj.$methods[methodName] = methodObj;
|
|
214
|
+
obj[methodName] = methodObj.func;
|
|
215
|
+
obj[methodName].inputArguments = inputArguments;
|
|
216
|
+
obj[methodName].outputArguments = outputArguments;
|
|
217
|
+
doDebug && debugLog("installing method name", methodName);
|
|
204
218
|
proxyManager._monitor_execution_flag(methodObj, () => {
|
|
205
219
|
callback();
|
|
206
220
|
});
|
|
207
221
|
}
|
|
208
|
-
], (err) =>
|
|
222
|
+
], (err) => {
|
|
223
|
+
if (err) {
|
|
224
|
+
errorLog("Error =>", err);
|
|
225
|
+
}
|
|
226
|
+
outerCallback(err);
|
|
227
|
+
});
|
|
209
228
|
}
|
|
210
229
|
function add_component(proxyManager, obj, reference, callback) {
|
|
211
230
|
const session = proxyManager.session;
|
|
@@ -252,7 +271,6 @@ function add_typeDefinition(proxyManager, obj, references, callback) {
|
|
|
252
271
|
const session = proxyManager.session;
|
|
253
272
|
references = references || [];
|
|
254
273
|
if (references.length !== 1) {
|
|
255
|
-
// xx console.log(" cannot find type definition", references.length);
|
|
256
274
|
setImmediate(callback);
|
|
257
275
|
return;
|
|
258
276
|
}
|
|
@@ -299,6 +317,11 @@ class ObjectExplorer {
|
|
|
299
317
|
}
|
|
300
318
|
}
|
|
301
319
|
exports.ObjectExplorer = ObjectExplorer;
|
|
320
|
+
function t(references) {
|
|
321
|
+
if (!references)
|
|
322
|
+
return "";
|
|
323
|
+
return references.map((r) => r.browseName.name + " " + r.nodeId.toString());
|
|
324
|
+
}
|
|
302
325
|
function readUAStructure(proxyManager, obj, callback) {
|
|
303
326
|
const session = proxyManager.session;
|
|
304
327
|
// 0 Object
|
|
@@ -374,27 +397,26 @@ function readUAStructure(proxyManager, obj, callback) {
|
|
|
374
397
|
}
|
|
375
398
|
];
|
|
376
399
|
session.browse(nodesToBrowse, (err, browseResults) => {
|
|
377
|
-
function t(references) {
|
|
378
|
-
return references.map((r) => r.browseName.name + " " + r.nodeId.toString());
|
|
379
|
-
}
|
|
380
400
|
browseResults = browseResults || [];
|
|
381
401
|
// istanbul ignore next
|
|
382
402
|
if (err) {
|
|
383
403
|
return callback(err);
|
|
384
404
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
405
|
+
if (doDebug) {
|
|
406
|
+
debugLog("Components", t(browseResults[0].references));
|
|
407
|
+
debugLog("Properties", t(browseResults[1].references));
|
|
408
|
+
debugLog("Methods", t(browseResults[2].references));
|
|
409
|
+
}
|
|
388
410
|
async.series([
|
|
389
411
|
(callback) => {
|
|
390
|
-
async.mapSeries(browseResults[0].references, (reference,
|
|
412
|
+
async.mapSeries(browseResults[0].references, (reference, innerCallback) => add_component(proxyManager, obj, reference, innerCallback), (err) => callback(err));
|
|
391
413
|
},
|
|
392
414
|
(callback) => {
|
|
393
|
-
async.mapSeries(browseResults[1].references, (reference,
|
|
415
|
+
async.mapSeries(browseResults[1].references, (reference, innerCallback) => add_property(proxyManager, obj, reference, innerCallback), (err) => callback(err));
|
|
394
416
|
},
|
|
395
417
|
// now enrich our object with nice callable async methods
|
|
396
418
|
(callback) => {
|
|
397
|
-
async.mapSeries(browseResults[2].references, (reference,
|
|
419
|
+
async.mapSeries(browseResults[2].references, (reference, innerCallback) => add_method(proxyManager, obj, reference, innerCallback), (err) => callback(err));
|
|
398
420
|
},
|
|
399
421
|
// now set typeDefinition
|
|
400
422
|
(callback) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object_explorer.js","sourceRoot":"","sources":["../source/object_explorer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"object_explorer.js","sourceRoot":"","sources":["../source/object_explorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,20 @@ import { EventEmitter } from "events";
|
|
|
6
6
|
import { NodeClass } from "node-opcua-data-model";
|
|
7
7
|
import { DataValue } from "node-opcua-data-value";
|
|
8
8
|
import { NodeId } from "node-opcua-nodeid";
|
|
9
|
-
import {
|
|
9
|
+
import { Argument } from "node-opcua-service-call";
|
|
10
|
+
import { DataType, Variant } from "node-opcua-variant";
|
|
10
11
|
import { UAProxyManager } from "./proxy_manager";
|
|
12
|
+
export interface ArgumentEx extends Argument {
|
|
13
|
+
_basicDataType: DataType;
|
|
14
|
+
}
|
|
15
|
+
export interface MethodDescription {
|
|
16
|
+
browseName: string;
|
|
17
|
+
executableFlag: boolean;
|
|
18
|
+
func: (input: Record<string, unknown>, callback: (err: Error | null, output?: Record<string, unknown>) => void) => void;
|
|
19
|
+
nodeId: NodeId;
|
|
20
|
+
inputArguments: ArgumentEx[];
|
|
21
|
+
outputArguments: ArgumentEx[];
|
|
22
|
+
}
|
|
11
23
|
export declare class ProxyBaseNode extends EventEmitter {
|
|
12
24
|
/**
|
|
13
25
|
* the object nodeId
|
|
@@ -32,7 +44,7 @@ export declare class ProxyBaseNode extends EventEmitter {
|
|
|
32
44
|
* @property $methods
|
|
33
45
|
* @type {Array<ProxyBaseNode>}
|
|
34
46
|
*/
|
|
35
|
-
$methods:
|
|
47
|
+
$methods: MethodDescription[];
|
|
36
48
|
/**
|
|
37
49
|
* the Folder's elements
|
|
38
50
|
* @property $organizes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy_base_node.js","sourceRoot":"","sources":["../source/proxy_base_node.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mCAAsC;AACtC,yDAA2C;AAC3C,iEAAgE;
|
|
1
|
+
{"version":3,"file":"proxy_base_node.js","sourceRoot":"","sources":["../source/proxy_base_node.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-client-proxy",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.60.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module -client-proxy",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"clean": "node -e \"require('rimraf').sync('dist');\"",
|
|
@@ -12,22 +12,23 @@
|
|
|
12
12
|
"main": "./dist/index.js",
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"async": "^3.2.
|
|
16
|
-
"node-opcua-address-space": "2.
|
|
15
|
+
"async": "^3.2.2",
|
|
16
|
+
"node-opcua-address-space": "2.60.0",
|
|
17
17
|
"node-opcua-assert": "2.55.0",
|
|
18
18
|
"node-opcua-constants": "2.52.0",
|
|
19
|
-
"node-opcua-data-model": "2.
|
|
20
|
-
"node-opcua-data-value": "2.
|
|
21
|
-
"node-opcua-
|
|
22
|
-
"node-opcua-
|
|
23
|
-
"node-opcua-
|
|
24
|
-
"node-opcua-service-
|
|
25
|
-
"node-opcua-service-
|
|
26
|
-
"node-opcua-service-
|
|
27
|
-
"node-opcua-service-
|
|
19
|
+
"node-opcua-data-model": "2.60.0",
|
|
20
|
+
"node-opcua-data-value": "2.60.0",
|
|
21
|
+
"node-opcua-debug": "2.60.0",
|
|
22
|
+
"node-opcua-nodeid": "2.60.0",
|
|
23
|
+
"node-opcua-pseudo-session": "2.60.0",
|
|
24
|
+
"node-opcua-service-browse": "2.60.0",
|
|
25
|
+
"node-opcua-service-call": "2.60.0",
|
|
26
|
+
"node-opcua-service-read": "2.60.0",
|
|
27
|
+
"node-opcua-service-subscription": "2.60.0",
|
|
28
|
+
"node-opcua-service-write": "2.60.0",
|
|
28
29
|
"node-opcua-status-code": "2.56.0",
|
|
29
|
-
"node-opcua-utils": "2.
|
|
30
|
-
"node-opcua-variant": "2.
|
|
30
|
+
"node-opcua-utils": "2.60.0",
|
|
31
|
+
"node-opcua-variant": "2.60.0"
|
|
31
32
|
},
|
|
32
33
|
"author": "Etienne Rossignon",
|
|
33
34
|
"license": "MIT",
|
|
@@ -44,5 +45,5 @@
|
|
|
44
45
|
"internet of things"
|
|
45
46
|
],
|
|
46
47
|
"homepage": "http://node-opcua.github.io/",
|
|
47
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "56dc8584b9118ee2f3bfb0b2e9d456b609ccbac8"
|
|
48
49
|
}
|
package/source/common.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module node-opcua-client-proxy
|
|
3
|
-
*/
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-client-proxy
|
|
3
|
+
*/
|
package/source/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module node-opcua-client-proxy
|
|
3
|
-
*/
|
|
4
|
-
export * from "./proxy_manager";
|
|
5
|
-
export * from "./proxy";
|
|
6
|
-
export * from "./state_machine_proxy";
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-client-proxy
|
|
3
|
+
*/
|
|
4
|
+
export * from "./proxy_manager";
|
|
5
|
+
export * from "./proxy";
|
|
6
|
+
export * from "./state_machine_proxy";
|
|
@@ -8,16 +8,22 @@ import { Callback, ErrorCallback } from "node-opcua-status-code";
|
|
|
8
8
|
import { AttributeIds, BrowseDirection, makeNodeClassMask, makeResultMask } from "node-opcua-data-model";
|
|
9
9
|
import { DataValue } from "node-opcua-data-value";
|
|
10
10
|
import { NodeId } from "node-opcua-nodeid";
|
|
11
|
-
import { IBasicSession } from "node-opcua-pseudo-session";
|
|
11
|
+
import { IBasicSession, ArgumentDefinition } from "node-opcua-pseudo-session";
|
|
12
12
|
import { BrowseResult, ReferenceDescription } from "node-opcua-service-browse";
|
|
13
|
-
import { CallMethodRequest, CallMethodResult } from "node-opcua-service-call";
|
|
13
|
+
import { CallMethodRequest, CallMethodResult, Argument } from "node-opcua-service-call";
|
|
14
14
|
import { StatusCodes } from "node-opcua-status-code";
|
|
15
15
|
import { lowerFirstLetter } from "node-opcua-utils";
|
|
16
|
-
import { DataType, Variant, VariantArrayType } from "node-opcua-variant";
|
|
16
|
+
import { DataType, Variant, VariantArrayType, VariantLike } from "node-opcua-variant";
|
|
17
|
+
import { make_errorLog, make_debugLog } from "node-opcua-debug";
|
|
17
18
|
|
|
18
19
|
import { makeRefId } from "./proxy";
|
|
19
20
|
import { UAProxyManager } from "./proxy_manager";
|
|
20
21
|
import { ProxyVariable } from "./proxy_variable";
|
|
22
|
+
import { MethodDescription, ArgumentEx } from "./proxy_base_node";
|
|
23
|
+
|
|
24
|
+
const doDebug = false;
|
|
25
|
+
const errorLog = make_errorLog("Proxy");
|
|
26
|
+
const debugLog = make_debugLog("Proxy");
|
|
21
27
|
|
|
22
28
|
export interface ObjectExplorerOptions {
|
|
23
29
|
proxyManager: UAProxyManager;
|
|
@@ -28,10 +34,6 @@ export interface ObjectExplorerOptions {
|
|
|
28
34
|
|
|
29
35
|
const resultMask = makeResultMask("ReferenceType | IsForward | BrowseName | NodeClass | TypeDefinition");
|
|
30
36
|
|
|
31
|
-
function convertNodeIdToDataType(dataTypeId: NodeId): DataType {
|
|
32
|
-
return (dataTypeId as any)._dataType as DataType;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
37
|
/**
|
|
36
38
|
* @method convertNodeIdToDataTypeAsync
|
|
37
39
|
*
|
|
@@ -121,43 +123,50 @@ function convertNodeIdToDataTypeAsync(session: IBasicSession, dataTypeId: NodeId
|
|
|
121
123
|
});
|
|
122
124
|
}
|
|
123
125
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
function add_method(proxyManager: UAProxyManager, obj: any, reference: ReferenceDescription, outerCallback: (err?: Error) => void) {
|
|
129
|
-
const session = proxyManager.session;
|
|
126
|
+
function convertToVariant(value: unknown, arg: ArgumentEx, propName: string): Variant {
|
|
127
|
+
const dataType = arg._basicDataType || DataType.Null;
|
|
128
|
+
const arrayType =
|
|
129
|
+
arg.valueRank === 1 ? VariantArrayType.Array : arg.valueRank === -1 ? VariantArrayType.Scalar : VariantArrayType.Matrix;
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
if (value === undefined) {
|
|
132
|
+
throw new Error("expecting input argument ");
|
|
133
|
+
}
|
|
134
|
+
if (arrayType === VariantArrayType.Array) {
|
|
135
|
+
if (!Array.isArray(value)) {
|
|
136
|
+
throw new Error("expecting value to be an Array or a TypedArray");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return new Variant({ arrayType, dataType, value });
|
|
140
|
+
}
|
|
132
141
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const
|
|
142
|
+
function convertToVariantArray(inputArgsDef: ArgumentEx[], inputArgs: Record<string, unknown>): Variant[] {
|
|
143
|
+
const inputArguments: Variant[] = inputArgsDef.map((arg: ArgumentEx) => {
|
|
144
|
+
const propName = lowerFirstLetter(arg.name || "");
|
|
145
|
+
const value = inputArgs[propName];
|
|
146
|
+
return convertToVariant(value, arg, propName);
|
|
147
|
+
});
|
|
148
|
+
return inputArguments;
|
|
149
|
+
}
|
|
137
150
|
|
|
138
|
-
|
|
139
|
-
|
|
151
|
+
function makeFunction(obj: any, methodName: string) {
|
|
152
|
+
return function functionCaller(
|
|
153
|
+
this: any,
|
|
154
|
+
inputArgs: Record<string, unknown>,
|
|
155
|
+
callback: (err: Error | null, output?: Record<string, unknown>) => void
|
|
156
|
+
) {
|
|
157
|
+
const session = this.proxyManager.session;
|
|
140
158
|
|
|
141
|
-
|
|
159
|
+
assert(typeof callback === "function");
|
|
142
160
|
|
|
143
|
-
|
|
144
|
-
|
|
161
|
+
const methodDef = this.$methods[methodName];
|
|
162
|
+
// convert input arguments into Variants
|
|
163
|
+
const inputArgsDef = methodDef.inputArguments || [];
|
|
145
164
|
|
|
146
|
-
|
|
147
|
-
if (value === undefined) {
|
|
148
|
-
throw new Error("expecting input argument " + propName);
|
|
149
|
-
}
|
|
150
|
-
if (arrayType === VariantArrayType.Array) {
|
|
151
|
-
if (!Array.isArray(value)) {
|
|
152
|
-
throw new Error("expecting value to be an Array or a TypedArray");
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return new Variant({ arrayType, dataType, value });
|
|
156
|
-
});
|
|
165
|
+
const inputArguments: Variant[] = convertToVariantArray(inputArgsDef, inputArgs);
|
|
157
166
|
|
|
158
167
|
const methodToCall = new CallMethodRequest({
|
|
159
168
|
inputArguments,
|
|
160
|
-
methodId:
|
|
169
|
+
methodId: methodDef.nodeId,
|
|
161
170
|
objectId: obj.nodeId
|
|
162
171
|
});
|
|
163
172
|
|
|
@@ -175,80 +184,75 @@ function add_method(proxyManager: UAProxyManager, obj: any, reference: Reference
|
|
|
175
184
|
|
|
176
185
|
callResult.outputArguments = callResult.outputArguments || [];
|
|
177
186
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if (callResult.outputArguments.length !== obj[name].outputArguments.length) {
|
|
187
|
+
if (callResult.outputArguments.length !== methodDef.outputArguments.length) {
|
|
181
188
|
return callback(
|
|
182
189
|
new Error(
|
|
183
190
|
"Internal error callResult.outputArguments.length " +
|
|
184
191
|
callResult.outputArguments.length +
|
|
185
192
|
" " +
|
|
186
|
-
obj[
|
|
193
|
+
obj[methodName].outputArguments.length
|
|
187
194
|
)
|
|
188
195
|
);
|
|
189
196
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const outputArgsDef = obj[name].outputArguments;
|
|
194
|
-
outputArgsDef.map((arg: any, index: number) => {
|
|
197
|
+
const output: Record<string, unknown> = {};
|
|
198
|
+
methodDef.outputArguments.map((arg: Argument, index: number) => {
|
|
195
199
|
const variant = callResult!.outputArguments![index];
|
|
196
|
-
const propName = lowerFirstLetter(arg.name);
|
|
197
|
-
|
|
200
|
+
const propName = lowerFirstLetter(arg.name!);
|
|
201
|
+
output[propName] = variant.value;
|
|
198
202
|
});
|
|
199
203
|
|
|
200
|
-
callback(err,
|
|
204
|
+
callback(err, output);
|
|
201
205
|
});
|
|
202
206
|
};
|
|
207
|
+
}
|
|
203
208
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
209
|
+
function extractDataType(session: IBasicSession, arg: ArgumentEx, callback: ErrorCallback): void {
|
|
210
|
+
if (arg.dataType && arg._basicDataType) {
|
|
211
|
+
setImmediate(callback); // already converted
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
convertNodeIdToDataTypeAsync(session, arg.dataType, (err?: Error | null, dataType?: DataType) => {
|
|
216
|
+
if (!err) {
|
|
217
|
+
arg._basicDataType = dataType!;
|
|
208
218
|
}
|
|
219
|
+
callback(err || undefined);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* @method add_method
|
|
224
|
+
* @private
|
|
225
|
+
*/
|
|
226
|
+
function add_method(proxyManager: UAProxyManager, obj: any, reference: ReferenceDescription, outerCallback: (err?: Error) => void) {
|
|
227
|
+
const session = proxyManager.session;
|
|
209
228
|
|
|
210
|
-
|
|
211
|
-
if (!err) {
|
|
212
|
-
arg.dataType._dataType = dataType;
|
|
213
|
-
}
|
|
214
|
-
callback(err);
|
|
215
|
-
});
|
|
216
|
-
}
|
|
229
|
+
const methodName = lowerFirstLetter(reference.browseName.name!);
|
|
217
230
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
executableFlag: false,
|
|
221
|
-
func: obj[name],
|
|
222
|
-
nodeId: reference.nodeId
|
|
223
|
-
};
|
|
224
|
-
obj.$methods[name] = methodObj;
|
|
231
|
+
let inputArguments: ArgumentEx[] = [];
|
|
232
|
+
let outputArguments: ArgumentEx[] = [];
|
|
225
233
|
|
|
226
234
|
// tslint:disable:no-shadowed-variable
|
|
227
235
|
async.series(
|
|
228
236
|
[
|
|
229
237
|
(callback: ErrorCallback) => {
|
|
230
|
-
session.getArgumentDefinition(reference.nodeId, (err
|
|
238
|
+
session.getArgumentDefinition(reference.nodeId, (err, argumentDefinition) => {
|
|
231
239
|
// istanbul ignore next
|
|
232
240
|
if (err) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
});
|
|
236
|
-
return;
|
|
241
|
+
errorLog("getArgumentDefinition failed ", err);
|
|
242
|
+
return callback(err);
|
|
237
243
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
244
|
+
// istanbul ignore next
|
|
245
|
+
if (!argumentDefinition) {
|
|
246
|
+
return callback(new Error("Internal Error"));
|
|
247
|
+
}
|
|
248
|
+
inputArguments = (argumentDefinition.inputArguments as ArgumentEx[]) || [];
|
|
249
|
+
outputArguments = (argumentDefinition.outputArguments as ArgumentEx[]) || [];
|
|
243
250
|
|
|
251
|
+
const _extractDataType = extractDataType.bind(null, session);
|
|
244
252
|
async.series(
|
|
245
253
|
[
|
|
246
|
-
(
|
|
247
|
-
|
|
248
|
-
},
|
|
249
|
-
(callback: ErrorCallback) => {
|
|
250
|
-
async.eachSeries(obj[name].outputArguments, extractDataType, (err) => callback(err!));
|
|
251
|
-
}
|
|
254
|
+
(innerCallback) => async.eachSeries(inputArguments, _extractDataType, innerCallback),
|
|
255
|
+
(innerCallback) => async.eachSeries(outputArguments, _extractDataType, innerCallback)
|
|
252
256
|
],
|
|
253
257
|
(err) => callback(err!)
|
|
254
258
|
);
|
|
@@ -256,12 +260,33 @@ function add_method(proxyManager: UAProxyManager, obj: any, reference: Reference
|
|
|
256
260
|
},
|
|
257
261
|
|
|
258
262
|
(callback: ErrorCallback) => {
|
|
263
|
+
|
|
264
|
+
const methodObj: MethodDescription = {
|
|
265
|
+
browseName: methodName,
|
|
266
|
+
executableFlag: false,
|
|
267
|
+
func: makeFunction(obj, methodName),
|
|
268
|
+
nodeId: reference.nodeId,
|
|
269
|
+
inputArguments,
|
|
270
|
+
outputArguments
|
|
271
|
+
};
|
|
272
|
+
obj.$methods[methodName] = methodObj;
|
|
273
|
+
obj[methodName] = methodObj.func;
|
|
274
|
+
|
|
275
|
+
obj[methodName].inputArguments = inputArguments;
|
|
276
|
+
obj[methodName].outputArguments = outputArguments;
|
|
277
|
+
|
|
278
|
+
doDebug && debugLog("installing method name", methodName);
|
|
259
279
|
proxyManager._monitor_execution_flag(methodObj, () => {
|
|
260
280
|
callback();
|
|
261
281
|
});
|
|
262
282
|
}
|
|
263
283
|
],
|
|
264
|
-
(err) =>
|
|
284
|
+
(err) => {
|
|
285
|
+
if (err) {
|
|
286
|
+
errorLog("Error =>",err);
|
|
287
|
+
}
|
|
288
|
+
outerCallback(err!)
|
|
289
|
+
}
|
|
265
290
|
);
|
|
266
291
|
}
|
|
267
292
|
|
|
@@ -331,7 +356,6 @@ function add_typeDefinition(
|
|
|
331
356
|
const session = proxyManager.session;
|
|
332
357
|
references = references || [];
|
|
333
358
|
if (references.length !== 1) {
|
|
334
|
-
// xx console.log(" cannot find type definition", references.length);
|
|
335
359
|
setImmediate(callback);
|
|
336
360
|
return;
|
|
337
361
|
}
|
|
@@ -388,6 +412,10 @@ export class ObjectExplorer {
|
|
|
388
412
|
});
|
|
389
413
|
}
|
|
390
414
|
}
|
|
415
|
+
function t(references: ReferenceDescription[] | null) {
|
|
416
|
+
if (!references) return "";
|
|
417
|
+
return references.map((r: ReferenceDescription) => r.browseName.name + " " + r.nodeId.toString());
|
|
418
|
+
}
|
|
391
419
|
|
|
392
420
|
export function readUAStructure(proxyManager: UAProxyManager, obj: { nodeId: NodeId }, callback: ErrorCallback): void {
|
|
393
421
|
const session = proxyManager.session;
|
|
@@ -466,10 +494,6 @@ export function readUAStructure(proxyManager: UAProxyManager, obj: { nodeId: Nod
|
|
|
466
494
|
}
|
|
467
495
|
];
|
|
468
496
|
session.browse(nodesToBrowse, (err: Error | null, browseResults?: BrowseResult[]) => {
|
|
469
|
-
function t(references: ReferenceDescription[]) {
|
|
470
|
-
return references.map((r: ReferenceDescription) => r.browseName.name + " " + r.nodeId.toString());
|
|
471
|
-
}
|
|
472
|
-
|
|
473
497
|
browseResults = browseResults || [];
|
|
474
498
|
|
|
475
499
|
// istanbul ignore next
|
|
@@ -477,16 +501,17 @@ export function readUAStructure(proxyManager: UAProxyManager, obj: { nodeId: Nod
|
|
|
477
501
|
return callback(err);
|
|
478
502
|
}
|
|
479
503
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
504
|
+
if (doDebug) {
|
|
505
|
+
debugLog("Components", t(browseResults[0].references));
|
|
506
|
+
debugLog("Properties", t(browseResults[1].references));
|
|
507
|
+
debugLog("Methods", t(browseResults[2].references));
|
|
508
|
+
}
|
|
483
509
|
async.series(
|
|
484
510
|
[
|
|
485
511
|
(callback: ErrorCallback) => {
|
|
486
512
|
async.mapSeries(
|
|
487
513
|
browseResults![0].references!,
|
|
488
|
-
(reference
|
|
489
|
-
add_component(proxyManager, obj, reference, callback),
|
|
514
|
+
(reference, innerCallback) => add_component(proxyManager, obj, reference, innerCallback),
|
|
490
515
|
(err) => callback(err!)
|
|
491
516
|
);
|
|
492
517
|
},
|
|
@@ -494,8 +519,7 @@ export function readUAStructure(proxyManager: UAProxyManager, obj: { nodeId: Nod
|
|
|
494
519
|
(callback: ErrorCallback) => {
|
|
495
520
|
async.mapSeries(
|
|
496
521
|
browseResults![1].references!,
|
|
497
|
-
(reference
|
|
498
|
-
add_property(proxyManager, obj, reference, callback),
|
|
522
|
+
(reference, innerCallback) => add_property(proxyManager, obj, reference, innerCallback),
|
|
499
523
|
(err) => callback(err!)
|
|
500
524
|
);
|
|
501
525
|
},
|
|
@@ -504,8 +528,7 @@ export function readUAStructure(proxyManager: UAProxyManager, obj: { nodeId: Nod
|
|
|
504
528
|
(callback: ErrorCallback) => {
|
|
505
529
|
async.mapSeries(
|
|
506
530
|
browseResults![2].references!,
|
|
507
|
-
(reference
|
|
508
|
-
add_method(proxyManager, obj, reference, callback),
|
|
531
|
+
(reference, innerCallback) => add_method(proxyManager, obj, reference, innerCallback),
|
|
509
532
|
(err) => callback(err!)
|
|
510
533
|
);
|
|
511
534
|
},
|
|
@@ -6,11 +6,24 @@ import { assert } from "node-opcua-assert";
|
|
|
6
6
|
import { AttributeIds, NodeClass } from "node-opcua-data-model";
|
|
7
7
|
import { DataValue } from "node-opcua-data-value";
|
|
8
8
|
import { NodeId } from "node-opcua-nodeid";
|
|
9
|
+
import { Argument } from "node-opcua-service-call";
|
|
9
10
|
import { WriteValueOptions } from "node-opcua-service-write";
|
|
10
11
|
import { StatusCode, StatusCodes } from "node-opcua-status-code";
|
|
11
|
-
import { Variant } from "node-opcua-variant";
|
|
12
|
+
import { DataType, Variant } from "node-opcua-variant";
|
|
12
13
|
import { UAProxyManager } from "./proxy_manager";
|
|
13
14
|
|
|
15
|
+
export interface ArgumentEx extends Argument {
|
|
16
|
+
_basicDataType: DataType;
|
|
17
|
+
}
|
|
18
|
+
export interface MethodDescription {
|
|
19
|
+
browseName: string;
|
|
20
|
+
executableFlag: boolean;
|
|
21
|
+
func: (input: Record<string, unknown>, callback: (err: Error | null, output?: Record<string, unknown>) => void) => void;
|
|
22
|
+
nodeId: NodeId; // the method NodeId
|
|
23
|
+
inputArguments: ArgumentEx[];
|
|
24
|
+
outputArguments: ArgumentEx[];
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
export class ProxyBaseNode extends EventEmitter {
|
|
15
28
|
/**
|
|
16
29
|
* the object nodeId
|
|
@@ -35,7 +48,7 @@ export class ProxyBaseNode extends EventEmitter {
|
|
|
35
48
|
* @property $methods
|
|
36
49
|
* @type {Array<ProxyBaseNode>}
|
|
37
50
|
*/
|
|
38
|
-
public $methods:
|
|
51
|
+
public $methods: MethodDescription[];
|
|
39
52
|
/**
|
|
40
53
|
* the Folder's elements
|
|
41
54
|
* @property $organizes
|