node-opcua-address-space 2.57.0 → 2.61.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.d.ts +0 -2
- package/dist/source/helpers/argument_list.js +12 -1
- package/dist/source/helpers/argument_list.js.map +1 -1
- package/dist/source/helpers/multiform_func.d.ts +11 -0
- package/dist/source/helpers/multiform_func.js +74 -0
- package/dist/source/helpers/multiform_func.js.map +1 -0
- package/dist/source/loader/load_nodeset2.js +47 -64
- package/dist/source/loader/load_nodeset2.js.map +1 -1
- package/dist/source/set_namespace_meta_data.js +1 -1
- package/dist/src/address_space.js +12 -6
- package/dist/src/address_space.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition_snapshot.js +3 -3
- package/dist/src/alarms_and_conditions/condition_snapshot.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +2 -1
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_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_condition_impl.js +8 -6
- package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +1 -1
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
- package/dist/src/base_node_impl.js +2 -0
- package/dist/src/base_node_impl.js.map +1 -1
- package/dist/src/base_node_private.d.ts +3 -3
- package/dist/src/base_node_private.js +198 -25
- package/dist/src/base_node_private.js.map +1 -1
- package/dist/src/event_data.js +1 -1
- package/dist/src/event_data.js.map +1 -1
- package/dist/src/namespace_impl.js +5 -5
- package/dist/src/namespace_impl.js.map +1 -1
- package/dist/src/nodeset_tools/nodeset_to_xml.js +15 -9
- package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
- package/dist/src/nodeset_tools/typedictionary_to_xml.js +17 -10
- package/dist/src/nodeset_tools/typedictionary_to_xml.js.map +1 -1
- package/dist/src/reference_impl.js +1 -1
- package/dist/src/reference_impl.js.map +1 -1
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +20 -13
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -1
- package/dist/src/ua_data_type_impl.d.ts +15 -5
- package/dist/src/ua_data_type_impl.js +129 -51
- package/dist/src/ua_data_type_impl.js.map +1 -1
- package/dist/src/ua_method_impl.d.ts +3 -2
- package/dist/src/ua_method_impl.js +7 -1
- package/dist/src/ua_method_impl.js.map +1 -1
- package/dist/src/ua_object_impl.js +2 -1
- package/dist/src/ua_object_impl.js.map +1 -1
- package/dist/src/ua_variable_impl.d.ts +12 -18
- package/dist/src/ua_variable_impl.js +285 -215
- package/dist/src/ua_variable_impl.js.map +1 -1
- package/dist/src/ua_variable_type_impl.d.ts +3 -4
- package/dist/src/ua_variable_type_impl.js +60 -52
- package/dist/src/ua_variable_type_impl.js.map +1 -1
- package/dist/src/ua_view_impl.js +1 -1
- package/dist/src/ua_view_impl.js.map +1 -1
- package/distHelpers/add_event_generator_object.js.map +1 -1
- package/distHelpers/mock_session.js +1 -1
- package/distHelpers/mock_session.js.map +1 -1
- package/package.json +35 -35
- package/source/address_space_ts.ts +0 -1
- package/source/helpers/argument_list.ts +13 -3
- package/source/helpers/multiform_func.ts +76 -0
- package/source/loader/load_nodeset2.ts +64 -80
- package/source/set_namespace_meta_data.ts +1 -1
- package/src/address_space.ts +16 -7
- package/src/alarms_and_conditions/condition_snapshot.ts +4 -4
- package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +7 -6
- package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +2 -2
- package/src/alarms_and_conditions/ua_condition_impl.ts +29 -15
- package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +1 -1
- package/src/base_node_impl.ts +3 -1
- package/src/base_node_private.ts +282 -36
- package/src/event_data.ts +1 -1
- package/src/namespace_impl.ts +6 -6
- package/src/nodeset_tools/nodeset_to_xml.ts +20 -10
- package/src/nodeset_tools/typedictionary_to_xml.ts +17 -7
- package/src/reference_impl.ts +3 -3
- package/src/state_machine/ua_shelving_state_machine_ex.ts +32 -19
- package/src/ua_data_type_impl.ts +168 -61
- package/src/ua_method_impl.ts +21 -7
- package/src/ua_object_impl.ts +10 -2
- package/src/ua_variable_impl.ts +419 -325
- package/src/ua_variable_type_impl.ts +86 -52
- package/src/ua_view_impl.ts +1 -1
- package/test_helpers/add_event_generator_object.ts +4 -3
- package/test_helpers/mock_session.ts +1 -1
- package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +18 -0
- package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +9 -1
- package/test_helpers/test_fixtures/mini.Node.Set2.xml +22 -1
|
@@ -6,20 +6,6 @@
|
|
|
6
6
|
import * as chalk from "chalk";
|
|
7
7
|
|
|
8
8
|
import { assert } from "node-opcua-assert";
|
|
9
|
-
import { UInt32 } from "node-opcua-basic-types";
|
|
10
|
-
import { ReferenceTypeIds } from "node-opcua-constants";
|
|
11
|
-
import { coerceQualifiedName, NodeClass, QualifiedName } from "node-opcua-data-model";
|
|
12
|
-
import { BrowseDirection } from "node-opcua-data-model";
|
|
13
|
-
import { AttributeIds } from "node-opcua-data-model";
|
|
14
|
-
import { DataValue, DataValueLike } from "node-opcua-data-value";
|
|
15
|
-
import { checkDebugFlag, make_debugLog, make_warningLog } from "node-opcua-debug";
|
|
16
|
-
import { coerceNodeId, makeNodeId, NodeId, NodeIdLike, sameNodeId } from "node-opcua-nodeid";
|
|
17
|
-
import { StatusCodes } from "node-opcua-status-code";
|
|
18
|
-
import { isNullOrUndefined } from "node-opcua-utils";
|
|
19
|
-
import { DataType } from "node-opcua-variant";
|
|
20
|
-
import { Variant } from "node-opcua-variant";
|
|
21
|
-
import { VariantArrayType } from "node-opcua-variant";
|
|
22
|
-
|
|
23
9
|
import {
|
|
24
10
|
IAddressSpace,
|
|
25
11
|
AddVariableOptions,
|
|
@@ -35,6 +21,15 @@ import {
|
|
|
35
21
|
UAVariableType,
|
|
36
22
|
CloneFilter
|
|
37
23
|
} from "node-opcua-address-space-base";
|
|
24
|
+
import { ObjectTypeIds, ReferenceTypeIds, VariableTypeIds } from "node-opcua-constants";
|
|
25
|
+
import { coerceQualifiedName, NodeClass, QualifiedName, BrowseDirection, AttributeIds } from "node-opcua-data-model";
|
|
26
|
+
import { DataValue, DataValueLike } from "node-opcua-data-value";
|
|
27
|
+
import { checkDebugFlag, make_debugLog, make_warningLog, make_errorLog } from "node-opcua-debug";
|
|
28
|
+
import { coerceNodeId, makeNodeId, NodeId, NodeIdLike, sameNodeId } from "node-opcua-nodeid";
|
|
29
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
30
|
+
import { UInt32 } from "node-opcua-basic-types";
|
|
31
|
+
import { isNullOrUndefined } from "node-opcua-utils";
|
|
32
|
+
import { DataType, Variant, VariantArrayType, verifyRankAndDimensions } from "node-opcua-variant";
|
|
38
33
|
|
|
39
34
|
import { SessionContext } from "../source/session_context";
|
|
40
35
|
import { makeOptionalsMap, OptionalMap } from "../source/helpers/make_optionals_map";
|
|
@@ -45,11 +40,16 @@ import { _clone_children_references, ToStringBuilder, UAVariableType_toString }
|
|
|
45
40
|
import * as tools from "./tool_isSupertypeOf";
|
|
46
41
|
import { get_subtypeOfObj } from "./tool_isSupertypeOf";
|
|
47
42
|
import { get_subtypeOf } from "./tool_isSupertypeOf";
|
|
48
|
-
import {
|
|
43
|
+
import { resolveReferenceNode } from "./reference_impl";
|
|
49
44
|
|
|
50
45
|
const debugLog = make_debugLog(__filename);
|
|
51
46
|
const doDebug = checkDebugFlag(__filename);
|
|
52
47
|
const warningLog = make_warningLog(__filename);
|
|
48
|
+
const errorLog = make_errorLog(__filename);
|
|
49
|
+
|
|
50
|
+
// eslint-disable-next-line prefer-const
|
|
51
|
+
let doTrace = false;
|
|
52
|
+
const traceLog = errorLog;
|
|
53
53
|
|
|
54
54
|
interface InstantiateS {
|
|
55
55
|
propertyOf?: any;
|
|
@@ -131,7 +131,6 @@ export class UAVariableTypeImpl extends BaseNodeImpl implements UAVariableType {
|
|
|
131
131
|
|
|
132
132
|
if (options.value) {
|
|
133
133
|
this.value = new Variant(options.value);
|
|
134
|
-
// xx console.log("setting ",this.value.toString());
|
|
135
134
|
}
|
|
136
135
|
}
|
|
137
136
|
|
|
@@ -309,7 +308,7 @@ class MandatoryChildOrRequestedOptionalFilter implements CloneFilter {
|
|
|
309
308
|
const n = addressSpace.findNode(r.nodeId)!;
|
|
310
309
|
// istanbul ignore next
|
|
311
310
|
if (!n) {
|
|
312
|
-
|
|
311
|
+
warningLog(" cannot find node ", r.nodeId.toString());
|
|
313
312
|
return false;
|
|
314
313
|
}
|
|
315
314
|
return n.browseName!.name!.toString() === node.browseName!.name!.toString();
|
|
@@ -327,7 +326,24 @@ class MandatoryChildOrRequestedOptionalFilter implements CloneFilter {
|
|
|
327
326
|
switch (modellingRule) {
|
|
328
327
|
case null:
|
|
329
328
|
case undefined:
|
|
330
|
-
|
|
329
|
+
debugLog(
|
|
330
|
+
"node ",
|
|
331
|
+
node.browseName.toString(),
|
|
332
|
+
node.nodeId.toString(),
|
|
333
|
+
" has no modellingRule ",
|
|
334
|
+
node.parentNodeId?.toString()
|
|
335
|
+
);
|
|
336
|
+
/**
|
|
337
|
+
* in some badly generated NodeSet2.xml file, the modellingRule is not specified
|
|
338
|
+
*
|
|
339
|
+
* but in some other NodeSet2.xml, this means that the data are only attached to the Type node and shall not be
|
|
340
|
+
* instantiate in the corresponding instance (example is the state variable of a finite state machine that are only
|
|
341
|
+
* defined in the Type node)
|
|
342
|
+
*
|
|
343
|
+
* we should not consider it as an error, and treat it as not present
|
|
344
|
+
*/
|
|
345
|
+
return false;
|
|
346
|
+
|
|
331
347
|
case "Mandatory":
|
|
332
348
|
return true; // keep;
|
|
333
349
|
case "Optional":
|
|
@@ -370,11 +386,11 @@ function _get_parent_as_VariableOrObjectType(originalObject: BaseNode): UAVariab
|
|
|
370
386
|
|
|
371
387
|
// istanbul ignore next
|
|
372
388
|
if (parents.length > 1) {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
389
|
+
warningLog(" object ", originalObject.browseName.toString(), " has more than one parent !");
|
|
390
|
+
warningLog(originalObject.toString());
|
|
391
|
+
warningLog(" parents : ");
|
|
376
392
|
for (const parent of parents) {
|
|
377
|
-
|
|
393
|
+
warningLog(" ", parent.toString(), addressSpace.findNode(parent.nodeId)!.browseName.toString());
|
|
378
394
|
}
|
|
379
395
|
return null;
|
|
380
396
|
}
|
|
@@ -395,8 +411,12 @@ interface CloneInfo {
|
|
|
395
411
|
original: UAVariableType | UAObjectType;
|
|
396
412
|
}
|
|
397
413
|
class CloneHelper {
|
|
414
|
+
public level = 0;
|
|
398
415
|
private readonly mapOrgToClone: Map<string, CloneInfo> = new Map();
|
|
399
416
|
|
|
417
|
+
public pad(): string {
|
|
418
|
+
return " ".padEnd(this.level * 2, " ");
|
|
419
|
+
}
|
|
400
420
|
public registerClonedObject<TT extends UAVariableType | UAObjectType, T extends UAObject | UAVariable | UAMethod>(
|
|
401
421
|
objInType: TT,
|
|
402
422
|
clonedObj: T
|
|
@@ -439,7 +459,6 @@ class CloneHelper {
|
|
|
439
459
|
// find subTypeOf
|
|
440
460
|
}
|
|
441
461
|
}
|
|
442
|
-
|
|
443
462
|
// install properties and components on a instantiated Object
|
|
444
463
|
//
|
|
445
464
|
// based on their ModelingRule
|
|
@@ -452,39 +471,66 @@ class CloneHelper {
|
|
|
452
471
|
function _initialize_properties_and_components<B extends UAObject | UAVariable | UAMethod, T extends UAObjectType | UAVariableType>(
|
|
453
472
|
instance: B,
|
|
454
473
|
topMostType: T,
|
|
455
|
-
|
|
474
|
+
typeDefinitionNode: T,
|
|
456
475
|
copyAlsoModellingRules: boolean,
|
|
457
476
|
optionalsMap: OptionalMap,
|
|
458
477
|
extraInfo: CloneHelper
|
|
459
478
|
) {
|
|
460
479
|
if (doDebug) {
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
480
|
+
debugLog("instance browseName =", instance.browseName.toString());
|
|
481
|
+
debugLog("typeNode =", typeDefinitionNode.browseName.toString());
|
|
482
|
+
debugLog("optionalsMap =", Object.keys(optionalsMap).join(" "));
|
|
464
483
|
|
|
465
|
-
const c =
|
|
466
|
-
|
|
484
|
+
const c = typeDefinitionNode.findReferencesEx("Aggregates");
|
|
485
|
+
debugLog("typeDefinition aggregates =", c.map((x) => x.node!.browseName.toString()).join(" "));
|
|
467
486
|
}
|
|
468
487
|
optionalsMap = optionalsMap || {};
|
|
469
488
|
|
|
470
|
-
if (sameNodeId(topMostType.nodeId,
|
|
489
|
+
if (sameNodeId(topMostType.nodeId, typeDefinitionNode.nodeId)) {
|
|
471
490
|
return; // nothing to do
|
|
472
491
|
}
|
|
473
492
|
|
|
474
|
-
const
|
|
475
|
-
const baseType = typeNode.subtypeOfObj;
|
|
493
|
+
const filter = new MandatoryChildOrRequestedOptionalFilter(instance, optionalsMap);
|
|
476
494
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
495
|
+
doTrace &&
|
|
496
|
+
traceLog(
|
|
497
|
+
chalk.cyan(extraInfo.pad(), "cloning relevant member of typeDefinition class"),
|
|
498
|
+
typeDefinitionNode.browseName.toString()
|
|
499
|
+
);
|
|
481
500
|
|
|
482
|
-
const
|
|
501
|
+
const browseNameMap = new Set<string>();
|
|
502
|
+
|
|
503
|
+
_clone_children_references(typeDefinitionNode, instance, copyAlsoModellingRules, filter, extraInfo, browseNameMap);
|
|
504
|
+
|
|
505
|
+
// now apply recursion on baseTypeDefinition to get properties and components from base class
|
|
483
506
|
|
|
484
|
-
|
|
507
|
+
const baseTypeDefinitionNodeId = typeDefinitionNode.subtypeOf;
|
|
508
|
+
const baseTypeDefinition = typeDefinitionNode.subtypeOfObj!;
|
|
509
|
+
|
|
510
|
+
doTrace &&
|
|
511
|
+
traceLog(
|
|
512
|
+
chalk.cyan(
|
|
513
|
+
extraInfo.pad(),
|
|
514
|
+
"now apply recursion on baseTypeDefinition to get properties and components from base class"
|
|
515
|
+
),
|
|
516
|
+
baseTypeDefinition.browseName.toString()
|
|
517
|
+
);
|
|
518
|
+
|
|
519
|
+
// istanbul ignore next
|
|
520
|
+
if (!baseTypeDefinition) {
|
|
521
|
+
throw new Error(chalk.red("Cannot find object with nodeId ") + baseTypeDefinitionNodeId);
|
|
522
|
+
}
|
|
523
|
+
extraInfo.level++;
|
|
524
|
+
_initialize_properties_and_components(
|
|
525
|
+
instance,
|
|
526
|
+
topMostType,
|
|
527
|
+
baseTypeDefinition,
|
|
528
|
+
copyAlsoModellingRules,
|
|
529
|
+
optionalsMap,
|
|
530
|
+
extraInfo
|
|
531
|
+
);
|
|
532
|
+
extraInfo.level--;
|
|
485
533
|
|
|
486
|
-
// get properties and components from base class
|
|
487
|
-
_initialize_properties_and_components(instance, topMostType, baseType, copyAlsoModellingRules, optionalsMap, extraInfo);
|
|
488
534
|
}
|
|
489
535
|
|
|
490
536
|
/**
|
|
@@ -595,8 +641,6 @@ function findNonHierarchicalReferences(originalObject: BaseNode): UAReference[]
|
|
|
595
641
|
|
|
596
642
|
if (child) {
|
|
597
643
|
const baseRef = findNonHierarchicalReferences(child);
|
|
598
|
-
// xx console.log(" ... ",originalObject.browseName.toString(),
|
|
599
|
-
// parent.browseName.toString(), references.length, baseRef.length);
|
|
600
644
|
references = ([] as UAReference[]).concat(references, baseRef);
|
|
601
645
|
}
|
|
602
646
|
}
|
|
@@ -691,15 +735,6 @@ function reconstructFunctionalGroupType(extraInfo: any) {
|
|
|
691
735
|
for (const { original, cloned } of extraInfo.mapOrgToClone.values()) {
|
|
692
736
|
const organizedByArray = original.findReferencesEx("Organizes", BrowseDirection.Inverse);
|
|
693
737
|
|
|
694
|
-
// function dumpRef(r) {
|
|
695
|
-
// var referenceTd = addressSpace.findNode(r.referenceTypeId);
|
|
696
|
-
// var obj = addressSpace.findNode(r.nodeId);
|
|
697
|
-
// return "<-- " + referenceTd.browseName.toString() + " -- " + obj.browseName.toString();
|
|
698
|
-
// }
|
|
699
|
-
//
|
|
700
|
-
// console.log("xxxxx ========================================================",
|
|
701
|
-
// originalObject.browseName.toString(),
|
|
702
|
-
// organizedByArray.map(dumpRef).join("\n"));
|
|
703
738
|
for (const ref of organizedByArray) {
|
|
704
739
|
const info = extraInfo.mapOrgToClone.get(ref.nodeId.toString());
|
|
705
740
|
if (!info) continue;
|
|
@@ -718,7 +753,6 @@ function reconstructFunctionalGroupType(extraInfo: any) {
|
|
|
718
753
|
nodeId: cloned.nodeId,
|
|
719
754
|
referenceType: ref.referenceType
|
|
720
755
|
});
|
|
721
|
-
// xx console.log("xxx ============> adding reference ",ref.browse )
|
|
722
756
|
}
|
|
723
757
|
}
|
|
724
758
|
}
|
package/src/ua_view_impl.ts
CHANGED
|
@@ -34,7 +34,7 @@ export class UAViewImpl extends BaseNodeImpl implements UAView {
|
|
|
34
34
|
|
|
35
35
|
switch (attributeId) {
|
|
36
36
|
case AttributeIds.EventNotifier:
|
|
37
|
-
options.value = { dataType: DataType.
|
|
37
|
+
options.value = { dataType: DataType.Byte, value: this.eventNotifier };
|
|
38
38
|
options.statusCode = StatusCodes.Good;
|
|
39
39
|
break;
|
|
40
40
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module node-opcua-address-space
|
|
3
3
|
*/
|
|
4
|
-
import { StatusCodes } from "node-opcua-status-code";
|
|
4
|
+
import { CallbackT, StatusCodes } from "node-opcua-status-code";
|
|
5
5
|
import { DataType, Variant } from "node-opcua-variant";
|
|
6
|
-
import { INamespace, UAObject, ISessionContext
|
|
6
|
+
import { INamespace, UAObject, ISessionContext } from "node-opcua-address-space-base";
|
|
7
7
|
import { UAFolder } from "node-opcua-nodeset-ua";
|
|
8
|
+
import { CallMethodResultOptions } from "node-opcua-types";
|
|
8
9
|
|
|
9
10
|
export function add_eventGeneratorObject(namespace: INamespace, parentFolder: UAFolder | string): void {
|
|
10
11
|
const myEvtType = namespace.addEventType({
|
|
@@ -40,7 +41,7 @@ export function add_eventGeneratorObject(namespace: INamespace, parentFolder: UA
|
|
|
40
41
|
outputArguments: []
|
|
41
42
|
});
|
|
42
43
|
|
|
43
|
-
method.bindMethod((inputArguments: Variant[], context: ISessionContext, callback:
|
|
44
|
+
method.bindMethod((inputArguments: Variant[], context: ISessionContext, callback: CallbackT<CallMethodResultOptions>) => {
|
|
44
45
|
// xx console.log("In Event Generator Method");
|
|
45
46
|
// xx console.log(this.toString());
|
|
46
47
|
// xx console.log(context.object.toString());
|
|
@@ -28,7 +28,7 @@ export class MockContinuationPointManager implements IContinuationPointManager {
|
|
|
28
28
|
|
|
29
29
|
export const mockSession = {
|
|
30
30
|
getSessionId() {
|
|
31
|
-
return NodeId
|
|
31
|
+
return new NodeId();
|
|
32
32
|
},
|
|
33
33
|
continuationPointManager: new MockContinuationPointManager()
|
|
34
34
|
};
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
<Alias Alias="HasTypeDefinition">i=40</Alias>
|
|
14
14
|
<Alias Alias="HasProperty">i=46</Alias>
|
|
15
15
|
<Alias Alias="HasNotifier">i=48</Alias>
|
|
16
|
+
<Alias Alias="HasEncoding">i=38</Alias>
|
|
16
17
|
<Alias Alias="LocalizedText">i=21</Alias>
|
|
17
18
|
</Aliases>
|
|
18
19
|
<UADataType NodeId="i=6" BrowseName="Int32">
|
|
@@ -231,6 +232,23 @@
|
|
|
231
232
|
</References>
|
|
232
233
|
<InverseName>MayBeEffectedBy</InverseName>
|
|
233
234
|
</UAReferenceType>
|
|
235
|
+
<UAReferenceType NodeId="i=38" BrowseName="HasEncoding">
|
|
236
|
+
<DisplayName>HasEncoding</DisplayName>
|
|
237
|
+
<Description>The type for references from data type nodes to to data type encoding nodes.</Description>
|
|
238
|
+
<References>
|
|
239
|
+
<Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
|
|
240
|
+
</References>
|
|
241
|
+
<InverseName>EncodingOf</InverseName>
|
|
242
|
+
</UAReferenceType>
|
|
243
|
+
<UAReferenceType NodeId="i=17603" BrowseName="HasInterface">
|
|
244
|
+
<DisplayName>HasInterface</DisplayName>
|
|
245
|
+
<Documentation>https://reference.opcfoundation.org/v104/Core/docs/Amendment7/11.20</Documentation>
|
|
246
|
+
<References>
|
|
247
|
+
<Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
|
|
248
|
+
</References>
|
|
249
|
+
<InverseName>InterfaceOf</InverseName>
|
|
250
|
+
</UAReferenceType>
|
|
251
|
+
|
|
234
252
|
<UAObjectType NodeId="i=58" BrowseName="BaseObjectType">
|
|
235
253
|
<DisplayName>BaseObjectType</DisplayName>
|
|
236
254
|
<Description>The base type for all object nodes.</Description>
|
|
@@ -357,6 +357,14 @@
|
|
|
357
357
|
<Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
|
|
358
358
|
</References>
|
|
359
359
|
</UAObjectType>
|
|
360
|
-
|
|
360
|
+
|
|
361
|
+
<UAReferenceType NodeId="i=38" BrowseName="HasEncoding">
|
|
362
|
+
<DisplayName>HasEncoding</DisplayName>
|
|
363
|
+
<Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.13</Documentation>
|
|
364
|
+
<References>
|
|
365
|
+
<Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
|
|
366
|
+
</References>
|
|
367
|
+
<InverseName>EncodingOf</InverseName>
|
|
368
|
+
</UAReferenceType>
|
|
361
369
|
|
|
362
370
|
</UANodeSet>
|
|
@@ -442,7 +442,14 @@
|
|
|
442
442
|
</References>
|
|
443
443
|
<InverseName>HistoricalConfigurationOf</InverseName>
|
|
444
444
|
</UAReferenceType>
|
|
445
|
-
|
|
445
|
+
<UAReferenceType NodeId="i=17603" BrowseName="HasInterface">
|
|
446
|
+
<DisplayName>HasInterface</DisplayName>
|
|
447
|
+
<Documentation>https://reference.opcfoundation.org/v104/Core/docs/Amendment7/11.20</Documentation>
|
|
448
|
+
<References>
|
|
449
|
+
<Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
|
|
450
|
+
</References>
|
|
451
|
+
<InverseName>InterfaceOf</InverseName>
|
|
452
|
+
</UAReferenceType>
|
|
446
453
|
|
|
447
454
|
|
|
448
455
|
<UAObjectType NodeId="i=75" BrowseName="DataTypeSystemType">
|
|
@@ -4505,4 +4512,18 @@
|
|
|
4505
4512
|
<Reference ReferenceType="HasProperty" IsForward="false">i=11646</Reference>
|
|
4506
4513
|
</References>
|
|
4507
4514
|
</UAVariable>
|
|
4515
|
+
<UADataType NodeId="i=256" BrowseName="IdType">
|
|
4516
|
+
<DisplayName>IdType</DisplayName>
|
|
4517
|
+
<Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.2.3</Documentation>
|
|
4518
|
+
<References>
|
|
4519
|
+
<Reference ReferenceType="HasProperty">i=7591</Reference>
|
|
4520
|
+
<Reference ReferenceType="HasSubtype" IsForward="false">i=29</Reference>
|
|
4521
|
+
</References>
|
|
4522
|
+
<Definition Name="IdType">
|
|
4523
|
+
<Field Name="Numeric" Value="0" />
|
|
4524
|
+
<Field Name="String" Value="1" />
|
|
4525
|
+
<Field Name="Guid" Value="2" />
|
|
4526
|
+
<Field Name="Opaque" Value="3" />
|
|
4527
|
+
</Definition>
|
|
4528
|
+
</UADataType>
|
|
4508
4529
|
</UANodeSet>
|