node-opcua-address-space 2.78.0 → 2.79.1
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/namespace_data_access.d.ts +2 -2
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +1 -1
- package/dist/src/base_node_impl.d.ts +1 -0
- package/dist/src/base_node_impl.js +30 -3
- package/dist/src/base_node_impl.js.map +1 -1
- package/dist/src/historical_access/address_space_historical_data_node.d.ts +1 -1
- package/dist/src/historical_access/address_space_historical_data_node.js +46 -24
- package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -1
- package/dist/src/nodeset_tools/nodeset_to_xml.js +45 -9
- package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
- package/dist/src/ua_method_impl.d.ts +2 -1
- package/dist/src/ua_method_impl.js +9 -1
- package/dist/src/ua_method_impl.js.map +1 -1
- package/dist/src/ua_variable_impl.d.ts +5 -0
- package/dist/src/ua_variable_impl.js +32 -2
- package/dist/src/ua_variable_impl.js.map +1 -1
- package/package.json +26 -26
- package/source/namespace_data_access.ts +2 -2
- package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +1 -1
- package/src/base_node_impl.ts +34 -3
- package/src/historical_access/address_space_historical_data_node.ts +19 -4
- package/src/nodeset_tools/nodeset_to_xml.ts +57 -13
- package/src/ua_method_impl.ts +9 -3
- package/src/ua_variable_impl.ts +36 -4
- package/test_helpers/test_fixtures/mini.Node.Set2.xml +178 -0
- package/dist/source/helpers/check_event_clause.d.ts +0 -17
- package/dist/source/helpers/check_event_clause.js +0 -53
- package/dist/source/helpers/check_event_clause.js.map +0 -1
- package/dist/src/alarms_and_conditions/check_where_clause.d.ts +0 -4
- package/dist/src/alarms_and_conditions/check_where_clause.js +0 -110
- package/dist/src/alarms_and_conditions/check_where_clause.js.map +0 -1
- package/dist/src/alarms_and_conditions/condition_info.d.ts +0 -27
- package/dist/src/alarms_and_conditions/condition_info.js +0 -55
- package/dist/src/alarms_and_conditions/condition_info.js.map +0 -1
- package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +0 -233
- package/dist/src/alarms_and_conditions/condition_snapshot.js +0 -667
- package/dist/src/alarms_and_conditions/condition_snapshot.js.map +0 -1
- package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +0 -10
- package/dist/src/alarms_and_conditions/extract_event_fields.js +0 -90
- package/dist/src/alarms_and_conditions/extract_event_fields.js.map +0 -1
- package/dist/src/data_access/ua_multistate_value_discrete.d.ts +0 -51
- package/dist/src/data_access/ua_multistate_value_discrete.js +0 -250
- package/dist/src/data_access/ua_multistate_value_discrete.js.map +0 -1
- package/dist/src/data_access/ua_two_state_discrete.d.ts +0 -25
- package/dist/src/data_access/ua_two_state_discrete.js +0 -154
- package/dist/src/data_access/ua_two_state_discrete.js.map +0 -1
- package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +0 -2
- package/dist/src/nodeset_tools/typedictionary_to_xml.js +0 -155
- package/dist/src/nodeset_tools/typedictionary_to_xml.js.map +0 -1
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dumpToBSD = void 0;
|
|
4
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
5
|
-
const node_opcua_types_1 = require("node-opcua-types");
|
|
6
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
7
|
-
const construct_namespace_dependency_1 = require("./construct_namespace_dependency");
|
|
8
|
-
// tslint:disable-next-line: no-var-requires
|
|
9
|
-
const XMLWriter = require("xml-writer");
|
|
10
|
-
function dumpEnumeratedType(xw, e, name) {
|
|
11
|
-
xw.startElement("opc:EnumeratedType");
|
|
12
|
-
xw.writeAttribute("Name", name);
|
|
13
|
-
xw.writeAttribute("LengthInBits", "32");
|
|
14
|
-
for (const f of e.fields || []) {
|
|
15
|
-
xw.startElement("opc:EnumeratedValue");
|
|
16
|
-
xw.writeAttribute("Name", f.name);
|
|
17
|
-
(0, node_opcua_assert_1.assert)(f.value[0] === 0, "unsupported 64 bit value !");
|
|
18
|
-
xw.writeAttribute("Value", f.value[1].toString());
|
|
19
|
-
xw.endElement();
|
|
20
|
-
}
|
|
21
|
-
xw.endElement();
|
|
22
|
-
}
|
|
23
|
-
function buildXmlName(addressSpace, map, nodeId) {
|
|
24
|
-
if (node_opcua_nodeid_1.NodeId.sameNodeId(nodeId, node_opcua_nodeid_1.NodeId.nullNodeId)) {
|
|
25
|
-
return "ua:ExtensionObject";
|
|
26
|
-
}
|
|
27
|
-
const node = addressSpace.findNode(nodeId);
|
|
28
|
-
// istanbul ignore next
|
|
29
|
-
if (!node) {
|
|
30
|
-
throw new Error("Cannot find Node for" + (nodeId === null || nodeId === void 0 ? void 0 : nodeId.toString()));
|
|
31
|
-
}
|
|
32
|
-
const typeName = node.browseName.name;
|
|
33
|
-
const prefix = node.nodeId.namespace === 0 ? (node.nodeId.value <= 15 ? "opc" : "ua") : map[node.nodeId.namespace];
|
|
34
|
-
return prefix + ":" + (typeName === "Structure" && prefix === "ua" ? "ExtensionObject" : typeName);
|
|
35
|
-
}
|
|
36
|
-
// eslint-disable-next-line max-statements
|
|
37
|
-
function dumpDataTypeStructure(xw, addressSpace, map, structureDefinition, structureDefinitionBase, name, doc) {
|
|
38
|
-
var _a, _b;
|
|
39
|
-
xw.startElement("opc:StructuredType");
|
|
40
|
-
xw.writeAttribute("Name", name);
|
|
41
|
-
xw.writeAttribute("BaseType", buildXmlName(addressSpace, map, structureDefinition.baseDataType));
|
|
42
|
-
if (doc) {
|
|
43
|
-
xw.startElement("opc:Documentation");
|
|
44
|
-
xw.text(doc);
|
|
45
|
-
xw.endElement();
|
|
46
|
-
}
|
|
47
|
-
const fields = structureDefinition.fields || [];
|
|
48
|
-
// get base class
|
|
49
|
-
const nbFieldsInBase = structureDefinitionBase ? ((_a = structureDefinitionBase.fields) === null || _a === void 0 ? void 0 : _a.length) || 0 : 0;
|
|
50
|
-
let optionalsCount = 0;
|
|
51
|
-
for (let index = nbFieldsInBase; index < fields.length; index++) {
|
|
52
|
-
const f = fields[index];
|
|
53
|
-
if (f.isOptional) {
|
|
54
|
-
xw.startElement("opc:Field");
|
|
55
|
-
xw.writeAttribute("Name", f.name + "Specified");
|
|
56
|
-
xw.writeAttribute("TypeName", "opc:Bit");
|
|
57
|
-
xw.endElement();
|
|
58
|
-
optionalsCount++;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// istanbul ignore next
|
|
62
|
-
if (optionalsCount >= 32) {
|
|
63
|
-
throw new Error("Too many optionals fields");
|
|
64
|
-
}
|
|
65
|
-
if (optionalsCount) {
|
|
66
|
-
/*
|
|
67
|
-
const padding = optionalsCount <= 8
|
|
68
|
-
? (8 - optionalsCount)
|
|
69
|
-
: (optionalsCount <= 16)
|
|
70
|
-
? (16 - optionalsCount)
|
|
71
|
-
: (32 - optionalsCount)
|
|
72
|
-
;
|
|
73
|
-
*/
|
|
74
|
-
const padding = 32 - optionalsCount;
|
|
75
|
-
if (padding !== 0) {
|
|
76
|
-
xw.startElement("opc:Field");
|
|
77
|
-
xw.writeAttribute("Name", "Reserved1");
|
|
78
|
-
xw.writeAttribute("TypeName", "opc:Bit");
|
|
79
|
-
xw.writeAttribute("Length", padding.toString());
|
|
80
|
-
xw.endElement();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
for (let index = nbFieldsInBase; index < fields.length; index++) {
|
|
84
|
-
const f = fields[index];
|
|
85
|
-
const isArray = f.valueRank > 0 && ((_b = f.arrayDimensions) === null || _b === void 0 ? void 0 : _b.length);
|
|
86
|
-
if (isArray) {
|
|
87
|
-
xw.startElement("opc:Field");
|
|
88
|
-
xw.writeAttribute("Name", "NoOf" + f.name);
|
|
89
|
-
xw.writeAttribute("TypeName", "opc:Int32");
|
|
90
|
-
if (f.isOptional) {
|
|
91
|
-
xw.writeAttribute("SwitchField", f.name + "Specified");
|
|
92
|
-
}
|
|
93
|
-
xw.endElement();
|
|
94
|
-
}
|
|
95
|
-
xw.startElement("opc:Field");
|
|
96
|
-
xw.writeAttribute("Name", f.name);
|
|
97
|
-
const typeName = buildXmlName(addressSpace, map, f.dataType);
|
|
98
|
-
xw.writeAttribute("TypeName", typeName);
|
|
99
|
-
if (isArray) {
|
|
100
|
-
xw.writeAttribute("LengthField", "NoOf" + f.name);
|
|
101
|
-
}
|
|
102
|
-
if (f.isOptional) {
|
|
103
|
-
xw.writeAttribute("SwitchField", f.name + "Specified");
|
|
104
|
-
}
|
|
105
|
-
xw.endElement();
|
|
106
|
-
}
|
|
107
|
-
xw.endElement();
|
|
108
|
-
}
|
|
109
|
-
function dumpDataTypeToBSD(xw, dataType, map) {
|
|
110
|
-
var _a;
|
|
111
|
-
const addressSpace = dataType.addressSpace;
|
|
112
|
-
const name = dataType.browseName.name;
|
|
113
|
-
const definition = dataType.getDefinition();
|
|
114
|
-
if (definition instanceof node_opcua_types_1.StructureDefinition) {
|
|
115
|
-
const structureDefinitionBase = (_a = dataType.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.getStructureDefinition();
|
|
116
|
-
dumpDataTypeStructure(xw, addressSpace, map, definition, structureDefinitionBase, name);
|
|
117
|
-
}
|
|
118
|
-
if (definition instanceof node_opcua_types_1.EnumDefinition) {
|
|
119
|
-
dumpEnumeratedType(xw, definition, name);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function shortcut(namespace) {
|
|
123
|
-
return "n" + namespace.index;
|
|
124
|
-
}
|
|
125
|
-
function dumpToBSD(namespace) {
|
|
126
|
-
const dependency = (0, construct_namespace_dependency_1.constructNamespaceDependency)(namespace);
|
|
127
|
-
const addressSpace = namespace.addressSpace;
|
|
128
|
-
const xw = new XMLWriter(true);
|
|
129
|
-
xw.startDocument({ encoding: "utf-8", version: "1.0" });
|
|
130
|
-
xw.startElement("opc:TypeDictionary");
|
|
131
|
-
xw.writeAttribute("xmlns:opc", "http://opcfoundation.org/BinarySchema/");
|
|
132
|
-
xw.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
|
|
133
|
-
xw.writeAttribute("xmlns:ua", "http://opcfoundation.org/UA/");
|
|
134
|
-
const map = {};
|
|
135
|
-
for (const dependantNamespace of dependency) {
|
|
136
|
-
const namespaceIndex = dependantNamespace.index;
|
|
137
|
-
if (namespaceIndex === 0) {
|
|
138
|
-
//|| namespaceIndex === namespace.index) {
|
|
139
|
-
continue;
|
|
140
|
-
}
|
|
141
|
-
const ns = shortcut(dependantNamespace);
|
|
142
|
-
map[namespaceIndex] = ns;
|
|
143
|
-
xw.writeAttribute(`xmlns:${ns}`, dependantNamespace.namespaceUri);
|
|
144
|
-
}
|
|
145
|
-
xw.writeAttribute("DefaultByteOrder", "LittleEndian");
|
|
146
|
-
xw.writeAttribute("TargetNamespace", namespace.namespaceUri);
|
|
147
|
-
for (const dataType of namespace._dataTypeIterator()) {
|
|
148
|
-
dumpDataTypeToBSD(xw, dataType, map);
|
|
149
|
-
}
|
|
150
|
-
xw.endElement();
|
|
151
|
-
xw.endDocument();
|
|
152
|
-
return xw.toString();
|
|
153
|
-
}
|
|
154
|
-
exports.dumpToBSD = dumpToBSD;
|
|
155
|
-
//# sourceMappingURL=typedictionary_to_xml.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typedictionary_to_xml.js","sourceRoot":"","sources":["../../../src/nodeset_tools/typedictionary_to_xml.ts"],"names":[],"mappings":"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"}
|