node-opcua-address-space 2.156.0 → 2.157.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/dist/source/address_space_ts.js +1 -0
- package/dist/source/address_space_ts.js.map +1 -1
- package/dist/source/continuation_points/continuation_point_manager.js +1 -0
- package/dist/source/continuation_points/continuation_point_manager.js.map +1 -1
- package/dist/source/index.d.ts +1 -0
- package/dist/source/index.js +1 -0
- package/dist/source/index.js.map +1 -1
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +1 -0
- package/dist/source/loader/load_nodeset2.js +2 -0
- package/dist/source/loader/load_nodeset2.js.map +1 -1
- package/dist/source/pseudo_session.js +6 -3
- package/dist/source/pseudo_session.js.map +1 -1
- package/dist/source/session_context.js +7 -2
- package/dist/source/session_context.js.map +1 -1
- package/dist/src/_mandatory_child_or_requested_optional_filter.js +4 -1
- package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +1 -1
- package/dist/src/address_space.d.ts +1 -1
- package/dist/src/address_space.js +75 -29
- package/dist/src/address_space.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition_info_impl.js +4 -4
- package/dist/src/alarms_and_conditions/condition_info_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +217 -208
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +1 -1
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +1 -4
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +1 -1
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +9 -11
- package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
- package/dist/src/base_node_impl.js +8 -2
- package/dist/src/base_node_impl.js.map +1 -1
- package/dist/src/base_node_private.js +4 -4
- package/dist/src/base_node_private.js.map +1 -1
- package/dist/src/event_data.js +3 -0
- package/dist/src/event_data.js.map +1 -1
- package/dist/src/historical_access/address_space_historical_data_node.js +5 -0
- package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -1
- package/dist/src/idx_iterator.js +2 -1
- package/dist/src/idx_iterator.js.map +1 -1
- package/dist/src/index_current.d.ts +1 -0
- package/dist/src/index_current.js +1 -0
- package/dist/src/index_current.js.map +1 -1
- package/dist/src/namespace_impl.js +20 -6
- package/dist/src/namespace_impl.js.map +1 -1
- package/dist/src/nodeid_manager.js +5 -2
- package/dist/src/nodeid_manager.js.map +1 -1
- package/dist/src/reference_impl.js +7 -0
- package/dist/src/reference_impl.js.map +1 -1
- package/dist/src/state_machine/ua_two_state_variable.js +2 -0
- package/dist/src/state_machine/ua_two_state_variable.js.map +1 -1
- package/dist/src/ua_data_type_impl.js +12 -5
- package/dist/src/ua_data_type_impl.js.map +1 -1
- package/dist/src/ua_method_impl.js +5 -1
- package/dist/src/ua_method_impl.js.map +1 -1
- package/dist/src/ua_object_impl.js +3 -1
- package/dist/src/ua_object_impl.js.map +1 -1
- package/dist/src/ua_object_type_impl.js +5 -4
- package/dist/src/ua_object_type_impl.js.map +1 -1
- package/dist/src/ua_reference_type_impl.js +14 -11
- package/dist/src/ua_reference_type_impl.js.map +1 -1
- package/dist/src/ua_variable_impl.js +25 -2
- package/dist/src/ua_variable_impl.js.map +1 -1
- package/dist/src/ua_variable_type_impl.js +11 -4
- package/dist/src/ua_variable_type_impl.js.map +1 -1
- package/dist/src/ua_view_impl.js +3 -1
- package/dist/src/ua_view_impl.js.map +1 -1
- package/dist/tsconfig_base.tsbuildinfo +1 -0
- package/dist/tsconfig_common.tsbuildinfo +1 -1
- package/distNodeJS/generate_address_space.d.ts +1 -1
- package/package.json +44 -43
- package/source/index.ts +2 -0
- package/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.ts +2 -0
- package/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +0 -1
- package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +2 -0
- package/source_nodejs/generate_address_space.ts +1 -1
- package/src/address_space.ts +62 -22
- package/src/alarms_and_conditions/ua_condition_impl.ts +4 -3
- package/src/index_current.ts +1 -0
- package/src/ua_variable_impl.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IAddressSpace } from "node-opcua-address-space-base";
|
|
2
|
-
import { NodeSetLoaderOptions } from "
|
|
2
|
+
import { NodeSetLoaderOptions } from "..";
|
|
3
3
|
export declare function readNodeSet2XmlFile(xmlFile: string): Promise<string>;
|
|
4
4
|
export declare function generateAddressSpace(addressSpace: IAddressSpace, xmlFiles: string | string[], options?: NodeSetLoaderOptions): Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-address-space",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.157.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module address-space",
|
|
5
5
|
"main": "./dist/src/index_current.js",
|
|
6
6
|
"types": "./dist/source/index.d.ts",
|
|
@@ -13,57 +13,58 @@
|
|
|
13
13
|
"lint": "eslint source test src source_nodejs test_helpers",
|
|
14
14
|
"format": "prettier --write source test src source_nodejs test_helpers",
|
|
15
15
|
"clean": "npx rimraf -g node_modules dist *.tsbuildinfo",
|
|
16
|
-
"c": "mocha --version"
|
|
16
|
+
"c": "mocha --version",
|
|
17
|
+
"fix:tsconfig": "node ../../code_gen/extract-modules.js tsconfig_base.json"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
|
-
"@types/lodash": "4.17.
|
|
20
|
-
"@types/semver": "
|
|
20
|
+
"@types/lodash": "4.17.20",
|
|
21
|
+
"@types/semver": "7.7.1",
|
|
21
22
|
"chalk": "4.1.2",
|
|
22
23
|
"dequeue": "^1.0.5",
|
|
23
24
|
"lodash": "4.17.21",
|
|
24
|
-
"node-opcua-address-space-base": "2.
|
|
25
|
-
"node-opcua-assert": "2.
|
|
26
|
-
"node-opcua-basic-types": "2.
|
|
27
|
-
"node-opcua-binary-stream": "2.
|
|
28
|
-
"node-opcua-client-dynamic-extension-object": "2.
|
|
29
|
-
"node-opcua-constants": "2.
|
|
25
|
+
"node-opcua-address-space-base": "2.157.0",
|
|
26
|
+
"node-opcua-assert": "2.157.0",
|
|
27
|
+
"node-opcua-basic-types": "2.157.0",
|
|
28
|
+
"node-opcua-binary-stream": "2.157.0",
|
|
29
|
+
"node-opcua-client-dynamic-extension-object": "2.157.0",
|
|
30
|
+
"node-opcua-constants": "2.157.0",
|
|
30
31
|
"node-opcua-crypto": "4.16.0",
|
|
31
|
-
"node-opcua-data-access": "2.
|
|
32
|
-
"node-opcua-data-model": "2.
|
|
33
|
-
"node-opcua-data-value": "2.
|
|
34
|
-
"node-opcua-date-time": "2.
|
|
35
|
-
"node-opcua-debug": "2.
|
|
36
|
-
"node-opcua-enum": "2.
|
|
37
|
-
"node-opcua-extension-object": "2.
|
|
38
|
-
"node-opcua-factory": "2.
|
|
39
|
-
"node-opcua-nodeid": "2.
|
|
40
|
-
"node-opcua-nodeset-ua": "2.
|
|
41
|
-
"node-opcua-numeric-range": "2.
|
|
42
|
-
"node-opcua-object-registry": "2.
|
|
43
|
-
"node-opcua-pseudo-session": "2.
|
|
44
|
-
"node-opcua-
|
|
45
|
-
"node-opcua-service-
|
|
46
|
-
"node-opcua-service-
|
|
47
|
-
"node-opcua-service-
|
|
48
|
-
"node-opcua-service-
|
|
49
|
-
"node-opcua-
|
|
50
|
-
"node-opcua-
|
|
51
|
-
"node-opcua-
|
|
52
|
-
"node-opcua-
|
|
53
|
-
"node-opcua-
|
|
54
|
-
"
|
|
55
|
-
"semver": "^7.7.1",
|
|
32
|
+
"node-opcua-data-access": "2.157.0",
|
|
33
|
+
"node-opcua-data-model": "2.157.0",
|
|
34
|
+
"node-opcua-data-value": "2.157.0",
|
|
35
|
+
"node-opcua-date-time": "2.157.0",
|
|
36
|
+
"node-opcua-debug": "2.157.0",
|
|
37
|
+
"node-opcua-enum": "2.157.0",
|
|
38
|
+
"node-opcua-extension-object": "2.157.0",
|
|
39
|
+
"node-opcua-factory": "2.157.0",
|
|
40
|
+
"node-opcua-nodeid": "2.157.0",
|
|
41
|
+
"node-opcua-nodeset-ua": "2.157.0",
|
|
42
|
+
"node-opcua-numeric-range": "2.157.0",
|
|
43
|
+
"node-opcua-object-registry": "2.157.0",
|
|
44
|
+
"node-opcua-pseudo-session": "2.157.0",
|
|
45
|
+
"node-opcua-service-browse": "2.157.0",
|
|
46
|
+
"node-opcua-service-call": "2.157.0",
|
|
47
|
+
"node-opcua-service-history": "2.157.0",
|
|
48
|
+
"node-opcua-service-translate-browse-path": "2.157.0",
|
|
49
|
+
"node-opcua-service-write": "2.157.0",
|
|
50
|
+
"node-opcua-status-code": "2.157.0",
|
|
51
|
+
"node-opcua-types": "2.157.0",
|
|
52
|
+
"node-opcua-utils": "2.157.0",
|
|
53
|
+
"node-opcua-variant": "2.157.0",
|
|
54
|
+
"node-opcua-xml2json": "2.157.0",
|
|
55
|
+
"semver": "^7.7.2",
|
|
56
56
|
"thenify-ex": "4.4.0",
|
|
57
57
|
"xml-writer": "^1.7.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"
|
|
61
|
-
"node-opcua-
|
|
62
|
-
"node-opcua-
|
|
63
|
-
"node-opcua-
|
|
64
|
-
"node-opcua-
|
|
65
|
-
"node-opcua-
|
|
66
|
-
"
|
|
60
|
+
"humanize": "0.0.9",
|
|
61
|
+
"node-opcua-benchmarker": "2.157.0",
|
|
62
|
+
"node-opcua-leak-detector": "2.157.0",
|
|
63
|
+
"node-opcua-nodesets": "2.157.0",
|
|
64
|
+
"node-opcua-packet-analyzer": "2.157.0",
|
|
65
|
+
"node-opcua-schemas": "2.157.0",
|
|
66
|
+
"node-opcua-service-filter": "2.157.0",
|
|
67
|
+
"node-opcua-test-fixtures": "2.157.0"
|
|
67
68
|
},
|
|
68
69
|
"author": "Etienne Rossignon",
|
|
69
70
|
"license": "MIT",
|
|
@@ -80,7 +81,7 @@
|
|
|
80
81
|
"internet of things"
|
|
81
82
|
],
|
|
82
83
|
"homepage": "http://node-opcua.github.io/",
|
|
83
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "e0a948ac5379ae8d9cc8200a1b4a31515a35be37",
|
|
84
85
|
"files": [
|
|
85
86
|
"dist",
|
|
86
87
|
"distHelpers",
|
package/source/index.ts
CHANGED
|
@@ -37,6 +37,8 @@ export * from "./interfaces/alarms_and_conditions/ua_limit_alarm_ex";
|
|
|
37
37
|
export * from "./interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex";
|
|
38
38
|
export * from "./interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex";
|
|
39
39
|
|
|
40
|
+
export * from "./interfaces/nodeset_loader_options";
|
|
41
|
+
|
|
40
42
|
export { promoteToMultiStateDiscrete } from "../src/data_access/ua_multistate_discrete_impl";
|
|
41
43
|
export { promoteToMultiStateValueDiscrete } from "../src/data_access/ua_multistate_value_discrete_impl";
|
|
42
44
|
export { promoteToTwoStateDiscrete } from "../src/data_access/ua_two_state_discrete_impl";
|
|
@@ -7,6 +7,8 @@ import { UAConditionEx, UAConditionHelper } from "./ua_condition_ex";
|
|
|
7
7
|
|
|
8
8
|
export interface UAAcknowledgeableConditionHelper {
|
|
9
9
|
autoConfirmBranch(branch: ConditionSnapshot, comment: LocalizedTextLike): void;
|
|
10
|
+
|
|
11
|
+
|
|
10
12
|
acknowledgeAndAutoConfirmBranch(branch: ConditionSnapshot, comment: string | LocalizedTextLike | LocalizedText): void;
|
|
11
13
|
}
|
|
12
14
|
|
|
@@ -19,7 +19,6 @@ export interface UAAlarmConditionHelper extends UAAcknowledgeableConditionHelper
|
|
|
19
19
|
getInputNodeValue(): any | null;
|
|
20
20
|
updateState(): void;
|
|
21
21
|
getCurrentConditionInfo(): ConditionInfo;
|
|
22
|
-
|
|
23
22
|
installInputNodeMonitoring(inputNode: BaseNode | NodeId): void;
|
|
24
23
|
}
|
|
25
24
|
|
|
@@ -51,6 +51,8 @@ export interface UAConditionHelper extends UABaseEventHelper {
|
|
|
51
51
|
raiseNewCondition(conditionInfo: ConditionInfoOptions): void;
|
|
52
52
|
raiseNewBranchState(branch: ConditionSnapshot): void;
|
|
53
53
|
currentBranch(): ConditionSnapshot;
|
|
54
|
+
findBranchForEventId(eventId: Buffer| null): ConditionSnapshot | null;
|
|
55
|
+
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
export interface UAConditionEx extends UAObject, UACondition_Base, UAConditionHelper {
|
|
@@ -4,7 +4,7 @@ import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
|
|
|
4
4
|
import { IAddressSpace } from "node-opcua-address-space-base";
|
|
5
5
|
|
|
6
6
|
import { generateAddressSpaceRaw } from "..";
|
|
7
|
-
import { NodeSetLoaderOptions } from "
|
|
7
|
+
import { NodeSetLoaderOptions } from "..";
|
|
8
8
|
|
|
9
9
|
const doDebug = checkDebugFlag(__filename);
|
|
10
10
|
const debugLog = make_debugLog(__filename);
|
package/src/address_space.ts
CHANGED
|
@@ -77,6 +77,7 @@ import { ReferenceImpl } from "./reference_impl";
|
|
|
77
77
|
import { UAVariableImpl } from "./ua_variable_impl";
|
|
78
78
|
import { UAReferenceTypeImpl } from "./ua_reference_type_impl";
|
|
79
79
|
import { BaseNodeImpl } from "./base_node_impl";
|
|
80
|
+
import { resolve } from "path";
|
|
80
81
|
|
|
81
82
|
const doDebug = false;
|
|
82
83
|
const errorLog = make_errorLog(__filename);
|
|
@@ -88,10 +89,17 @@ const Dequeue = require("dequeue");
|
|
|
88
89
|
|
|
89
90
|
const regexNumberColumnString = /^([0-9]+):(.*)/;
|
|
90
91
|
const enumerationTypeNodeId = coerceNodeId(DataTypeIds.Enumeration);
|
|
91
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Extracts the namespace and browse name as a string from the given input.
|
|
94
|
+
*
|
|
95
|
+
* @param addressSpace The address space instance.
|
|
96
|
+
* @param browseNameOrNodeId A NodeIdLike, QualifiedName, or string representing the browse name or node id.
|
|
97
|
+
* @param namespaceIndex Optional namespace index.
|
|
98
|
+
* @returns A tuple containing the NamespacePrivate and the browse name as a string.
|
|
99
|
+
*/
|
|
92
100
|
function _extract_namespace_and_browse_name_as_string(
|
|
93
101
|
addressSpace: AddressSpace,
|
|
94
|
-
|
|
102
|
+
browseNameOrNodeId: NodeIdLike | QualifiedName,
|
|
95
103
|
namespaceIndex?: number
|
|
96
104
|
): [NamespacePrivate, string] {
|
|
97
105
|
assert(!namespaceIndex || namespaceIndex >= 0);
|
|
@@ -99,26 +107,37 @@ function _extract_namespace_and_browse_name_as_string(
|
|
|
99
107
|
let result;
|
|
100
108
|
|
|
101
109
|
if (namespaceIndex !== undefined && namespaceIndex > 0) {
|
|
102
|
-
assert(typeof
|
|
103
|
-
result = [addressSpace.getNamespace(namespaceIndex),
|
|
104
|
-
} else if (typeof
|
|
105
|
-
//
|
|
106
|
-
if (
|
|
107
|
-
|
|
110
|
+
assert(typeof browseNameOrNodeId === "string", "expecting a string when namespaceIndex is specified");
|
|
111
|
+
result = [addressSpace.getNamespace(namespaceIndex), browseNameOrNodeId];
|
|
112
|
+
} else if (typeof browseNameOrNodeId === "string") {
|
|
113
|
+
// we may have a string like "ns=1;i=1234" or "ns=1:MyBrowseName"
|
|
114
|
+
if (isNodeIdString(browseNameOrNodeId)) {
|
|
115
|
+
return _extract_namespace_and_browse_name_as_string(addressSpace, addressSpace.resolveNodeId(browseNameOrNodeId), namespaceIndex);
|
|
116
|
+
}
|
|
117
|
+
// we must have a BrowseName string
|
|
118
|
+
if (browseNameOrNodeId.indexOf(":") >= 0) {
|
|
119
|
+
const a = browseNameOrNodeId.split(":");
|
|
108
120
|
namespaceIndex = a.length === 2 ? parseInt(a[0], 10) : namespaceIndex;
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
result = [addressSpace.getNamespace(namespaceIndex || 0),
|
|
112
|
-
} else if (
|
|
113
|
-
namespaceIndex =
|
|
114
|
-
result = [addressSpace.getNamespace(namespaceIndex),
|
|
115
|
-
} else if (typeof
|
|
116
|
-
result = [addressSpace.getDefaultNamespace(), DataType[
|
|
121
|
+
browseNameOrNodeId = a.length === 2 ? a[1] : browseNameOrNodeId;
|
|
122
|
+
}
|
|
123
|
+
result = [addressSpace.getNamespace(namespaceIndex || 0), browseNameOrNodeId];
|
|
124
|
+
} else if (browseNameOrNodeId instanceof QualifiedName) {
|
|
125
|
+
namespaceIndex = browseNameOrNodeId.namespaceIndex;
|
|
126
|
+
result = [addressSpace.getNamespace(namespaceIndex), browseNameOrNodeId.name];
|
|
127
|
+
} else if (typeof browseNameOrNodeId === "number") {
|
|
128
|
+
result = [addressSpace.getDefaultNamespace(), DataType[browseNameOrNodeId]];
|
|
129
|
+
} else if (browseNameOrNodeId instanceof NodeId) {
|
|
130
|
+
// we have a nodeId
|
|
131
|
+
const nodeId = browseNameOrNodeId as NodeId;
|
|
132
|
+
namespaceIndex = nodeId.namespace;
|
|
133
|
+
const node = addressSpace.findNode(nodeId);
|
|
134
|
+
const browseName = node ? node.browseName.toString() : "UnknownNode";
|
|
135
|
+
result = [addressSpace.getNamespace(namespaceIndex), browseName];
|
|
117
136
|
}
|
|
118
137
|
|
|
119
138
|
/* istanbul ignore next */
|
|
120
139
|
if (!result || !result[0]) {
|
|
121
|
-
throw new Error(` Cannot find namespace associated with ${
|
|
140
|
+
throw new Error(` Cannot find namespace associated with ${browseNameOrNodeId} ${namespaceIndex}`);
|
|
122
141
|
}
|
|
123
142
|
return result as [NamespacePrivate, string];
|
|
124
143
|
}
|
|
@@ -331,7 +350,7 @@ export class AddressSpace implements AddressSpacePrivate {
|
|
|
331
350
|
}
|
|
332
351
|
}
|
|
333
352
|
}
|
|
334
|
-
const namespaceArray: string[] = this.getNamespaceArray().map((a)=>a.namespaceUri);
|
|
353
|
+
const namespaceArray: string[] = this.getNamespaceArray().map((a) => a.namespaceUri);
|
|
335
354
|
|
|
336
355
|
return resolveNodeId(nodeId, { namespaceArray });
|
|
337
356
|
}
|
|
@@ -429,7 +448,7 @@ export class AddressSpace implements AddressSpacePrivate {
|
|
|
429
448
|
}
|
|
430
449
|
if (typeof dataType === "number") {
|
|
431
450
|
if (DataType[dataType] !== undefined) {
|
|
432
|
-
dataType
|
|
451
|
+
return this.findDataType(makeNodeId(dataType, 0)) as UADataType;
|
|
433
452
|
} else {
|
|
434
453
|
return this.findDataType(resolveNodeId(dataType));
|
|
435
454
|
}
|
|
@@ -1376,11 +1395,14 @@ export class AddressSpace implements AddressSpacePrivate {
|
|
|
1376
1395
|
return returnValue;
|
|
1377
1396
|
}
|
|
1378
1397
|
|
|
1379
|
-
public _coerce_DataType(dataType: NodeId | string | BaseNode): NodeId {
|
|
1398
|
+
public _coerce_DataType(dataType: number | NodeId | string | BaseNode): NodeId {
|
|
1380
1399
|
if (dataType instanceof NodeId) {
|
|
1381
1400
|
// xx assert(self.findDataType(dataType));
|
|
1382
1401
|
return dataType;
|
|
1383
1402
|
}
|
|
1403
|
+
if (dataType === 0) {
|
|
1404
|
+
return NodeId.nullNodeId
|
|
1405
|
+
}
|
|
1384
1406
|
return this._coerce_Type(dataType, DataTypeIds, "DataTypeIds", AddressSpace.prototype.findDataType);
|
|
1385
1407
|
}
|
|
1386
1408
|
|
|
@@ -1459,13 +1481,31 @@ export class AddressSpace implements AddressSpacePrivate {
|
|
|
1459
1481
|
return dataTypeNode.isSubtypeOf(enumerationNode);
|
|
1460
1482
|
}
|
|
1461
1483
|
|
|
1462
|
-
private _coerce_Type(dataType: BaseNode | string | NodeId, typeMap: any, typeMapName: string, finderMethod: any): NodeId {
|
|
1484
|
+
private _coerce_Type(dataType: BaseNode | string | NodeId | number, typeMap: any, typeMapName: string, finderMethod: any): NodeId {
|
|
1485
|
+
if (typeof dataType === "number") {
|
|
1486
|
+
return this._coerce_Type(coerceNodeId(dataType), typeMap, typeMapName, finderMethod);
|
|
1487
|
+
}
|
|
1463
1488
|
if (dataType instanceof BaseNodeImpl) {
|
|
1464
1489
|
dataType = dataType.nodeId;
|
|
1465
1490
|
}
|
|
1466
1491
|
assert(typeMap !== null && typeof typeMap === "object");
|
|
1467
1492
|
let nodeId: NodeId | null;
|
|
1468
1493
|
if (typeof dataType === "string") {
|
|
1494
|
+
if (isNodeIdString(dataType)) {
|
|
1495
|
+
const nodeId = this.resolveNodeId(dataType);
|
|
1496
|
+
if (nodeId.isEmpty()) {
|
|
1497
|
+
// this is a valid dataType NodeId, but it has no definition in the address space
|
|
1498
|
+
return NodeId.nullNodeId;
|
|
1499
|
+
}
|
|
1500
|
+
const node = this.findNode(nodeId);
|
|
1501
|
+
if (node) {
|
|
1502
|
+
// if dataType is a nodeId string, we can use it directly
|
|
1503
|
+
return node.nodeId;
|
|
1504
|
+
} else {
|
|
1505
|
+
warningLog("Expecting valid nodeId of a DataType : ", nodeId.toString());
|
|
1506
|
+
return nodeId;
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1469
1509
|
const namespace0 = this.getDefaultNamespace();
|
|
1470
1510
|
// resolve dataType
|
|
1471
1511
|
nodeId = namespace0.resolveAlias(dataType);
|
|
@@ -1539,7 +1579,7 @@ function _increase_version_number(node: BaseNode | null) {
|
|
|
1539
1579
|
let rawValue = uaNodeVersion.readValue().value.value || ""
|
|
1540
1580
|
let previousValue = parseInt(rawValue || "0", 10);
|
|
1541
1581
|
if (Number.isNaN(previousValue)) {
|
|
1542
|
-
warningLog("NodeVersion was ", rawValue
|
|
1582
|
+
warningLog("NodeVersion was ", rawValue);
|
|
1543
1583
|
previousValue = 0;
|
|
1544
1584
|
}
|
|
1545
1585
|
uaNodeVersion.setValueFromSource({
|
|
@@ -173,7 +173,7 @@ export class UAConditionImpl extends UABaseEventImpl implements UAConditionEx {
|
|
|
173
173
|
const comment = inputArguments[1].value;
|
|
174
174
|
assert(comment instanceof LocalizedText);
|
|
175
175
|
|
|
176
|
-
const branch = conditionNode.
|
|
176
|
+
const branch = conditionNode.findBranchForEventId(eventId);
|
|
177
177
|
if (!branch) {
|
|
178
178
|
callback(null, {
|
|
179
179
|
statusCode: StatusCodes.BadEventIdUnknown
|
|
@@ -607,11 +607,12 @@ export class UAConditionImpl extends UABaseEventImpl implements UAConditionEx {
|
|
|
607
607
|
// xx }
|
|
608
608
|
}
|
|
609
609
|
|
|
610
|
-
|
|
610
|
+
public findBranchForEventId(eventId: Buffer| null): ConditionSnapshot | null {
|
|
611
611
|
if (sameBuffer(this.eventId!.readValue().value.value, eventId)) {
|
|
612
612
|
return this.currentBranch();
|
|
613
613
|
}
|
|
614
|
-
const e = [...this._branches.values()]
|
|
614
|
+
const e = [...this._branches.values()]
|
|
615
|
+
.filter((branch: ConditionSnapshot) => sameBuffer(branch.getEventId(), eventId));
|
|
615
616
|
if (e.length === 1) {
|
|
616
617
|
return e[0];
|
|
617
618
|
}
|
package/src/index_current.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from "../source/helpers/call_helpers";
|
|
|
12
12
|
export * from "../source/helpers/ensure_secure_access";
|
|
13
13
|
export * from "../source/helpers/resolve_opaque_on_address_space";
|
|
14
14
|
export * from "../source/interfaces/alarms_and_conditions/condition_info_i";
|
|
15
|
+
export * from "../source/interfaces/nodeset_loader_options"
|
|
15
16
|
export * from "../src/nodeset_tools/construct_namespace_dependency";
|
|
16
17
|
|
|
17
18
|
|
package/src/ua_variable_impl.ts
CHANGED
|
@@ -2323,7 +2323,7 @@ function changeUAVariableDataType(uaVariable: UAVariableImpl, newDataType: NodeI
|
|
|
2323
2323
|
uaVariable.dataType = newDataTypeNode.nodeId;
|
|
2324
2324
|
(uaVariable as any)._basicDataType = null;
|
|
2325
2325
|
(uaVariable as any).$dataValue.value.dataType = newDataType;
|
|
2326
|
-
(uaVariable as any).$dataValue.value
|
|
2326
|
+
(uaVariable as any).$dataValue.value = value;
|
|
2327
2327
|
// also change the value to ensure that we have a default value with the correct dataType
|
|
2328
2328
|
uaVariable._internal_set_value(value);
|
|
2329
2329
|
}
|