node-opcua-modeler 2.63.2 → 2.64.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/displayNodeElement.js +23 -8
- package/dist/displayNodeElement.js.map +1 -1
- package/dist/dump_state_machine_to_graphviz.d.ts +6 -0
- package/dist/dump_state_machine_to_graphviz.js +120 -0
- package/dist/dump_state_machine_to_graphviz.js.map +1 -0
- package/dist/generate_markdown_doc.js +186 -72
- package/dist/generate_markdown_doc.js.map +1 -1
- package/dist/to_graphivz.js +21 -9
- package/dist/to_graphivz.js.map +1 -1
- package/examples/make_model.ts +4 -3
- package/package.json +53 -52
- package/source/displayNodeElement.ts +25 -9
- package/source/dump_state_machine_to_graphviz.ts +164 -0
- package/source/generate_markdown_doc.ts +216 -79
- package/source/to_graphivz.ts +34 -18
|
@@ -28,6 +28,9 @@ function symbol(nodeClass) {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
const hasSubtypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasSubtype");
|
|
31
|
+
function encodeXML(s) {
|
|
32
|
+
return s.replace("&", "&").replace("<", "<").replace(">", ">");
|
|
33
|
+
}
|
|
31
34
|
function dumpReference(data, ref, filter) {
|
|
32
35
|
(0, node_opcua_address_space_1.resolveReferenceNode)(data.node.addressSpace, ref);
|
|
33
36
|
if (!ref.isForward) {
|
|
@@ -47,11 +50,12 @@ function dumpReference(data, ref, filter) {
|
|
|
47
50
|
const refNode = ref.node;
|
|
48
51
|
const refType = (0, node_opcua_address_space_1.resolveReferenceType)(data.node.addressSpace, ref);
|
|
49
52
|
if (filter) {
|
|
50
|
-
if (refType.browseName.
|
|
53
|
+
if (refType.browseName.name !== filter) {
|
|
51
54
|
return;
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
|
-
|
|
57
|
+
const key = ref.nodeId.toString() + ref.referenceType.toString();
|
|
58
|
+
if (data.alreadyDumped[key]) {
|
|
55
59
|
return;
|
|
56
60
|
}
|
|
57
61
|
// xx const r = refNode.findReferencesAsObject("HasModellingRule", true);
|
|
@@ -85,7 +89,7 @@ function dumpReference(data, ref, filter) {
|
|
|
85
89
|
const row = [
|
|
86
90
|
refType.browseName.toString() + dir + symbol(refNode.nodeClass),
|
|
87
91
|
refNode.nodeId.toString(),
|
|
88
|
-
refNode.browseName.toString(),
|
|
92
|
+
encodeXML(refNode.browseName.toString()),
|
|
89
93
|
modelingRule,
|
|
90
94
|
refNode.typeDefinitionObj ? refNode.typeDefinitionObj.browseName.toString() : "",
|
|
91
95
|
dataType,
|
|
@@ -93,11 +97,11 @@ function dumpReference(data, ref, filter) {
|
|
|
93
97
|
];
|
|
94
98
|
data.table.push(row);
|
|
95
99
|
data.descriptions.push({
|
|
96
|
-
description: refNode.description ? refNode.description.
|
|
100
|
+
description: refNode.description ? refNode.description.text || "" : "",
|
|
97
101
|
name: refNode.browseName.name,
|
|
98
102
|
type: dataType
|
|
99
103
|
});
|
|
100
|
-
data.alreadyDumped[
|
|
104
|
+
data.alreadyDumped[key] = 1;
|
|
101
105
|
}
|
|
102
106
|
function dumpReferences(data, _references) {
|
|
103
107
|
// xx for (const ref of references) {
|
|
@@ -118,6 +122,13 @@ function dumpReferences(data, _references) {
|
|
|
118
122
|
for (const ref of _references) {
|
|
119
123
|
dumpReference(data, ref, "Organizes");
|
|
120
124
|
}
|
|
125
|
+
for (const ref of _references) {
|
|
126
|
+
console.log(data.node.addressSpace.findReferenceType(ref.referenceType).toString());
|
|
127
|
+
dumpReference(data, ref, undefined);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function shortDescription(d) {
|
|
131
|
+
return d.split(/\.|\n/)[0];
|
|
121
132
|
}
|
|
122
133
|
function displayNodeElement(node, options) {
|
|
123
134
|
const head = ["ReferenceType", "NodeId", "BrowseName", "ModellingRule", "TypeDefinition", "DataType", "Value"];
|
|
@@ -129,7 +140,7 @@ function displayNodeElement(node, options) {
|
|
|
129
140
|
table.push(["Base", superType.browseName.toString(), { colSpan: 6, content: node.browseName.toString() }]);
|
|
130
141
|
}
|
|
131
142
|
if (node.description) {
|
|
132
|
-
table.push(["Description",
|
|
143
|
+
table.push(["Description", { colspan: 6, content: shortDescription(node.description.text || "") }]);
|
|
133
144
|
}
|
|
134
145
|
return table;
|
|
135
146
|
}
|
|
@@ -151,6 +162,10 @@ function displayNodeElement(node, options) {
|
|
|
151
162
|
const str = [];
|
|
152
163
|
const tables = [];
|
|
153
164
|
tables.push(table);
|
|
165
|
+
if (node.description) {
|
|
166
|
+
str.push(node.description.text || "");
|
|
167
|
+
str.push("");
|
|
168
|
+
}
|
|
154
169
|
str.push(toText(table));
|
|
155
170
|
const str2 = [];
|
|
156
171
|
// add property from base object/variable type
|
|
@@ -159,13 +174,13 @@ function displayNodeElement(node, options) {
|
|
|
159
174
|
let subtypeOf = curNode.subtypeOfObj;
|
|
160
175
|
while (subtypeOf) {
|
|
161
176
|
data.table = createTable();
|
|
162
|
-
table.push([subtypeOf.browseName.toString() + ":", "--", "--", "--"]);
|
|
177
|
+
data.table.push([subtypeOf.browseName.toString() + ":", "--", "--", "--"]);
|
|
163
178
|
const references2 = subtypeOf.allReferences();
|
|
164
179
|
dumpReferences(data, references2);
|
|
165
180
|
str.push("<details>");
|
|
166
181
|
str.push("<summary>Base type: " + subtypeOf.browseName.toString() + "</summary>");
|
|
167
182
|
str.push("");
|
|
168
|
-
str.push(toText(table));
|
|
183
|
+
str.push(toText(data.table));
|
|
169
184
|
str.push("");
|
|
170
185
|
str2.push("</details>");
|
|
171
186
|
subtypeOf = subtypeOf.subtypeOfObj;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayNodeElement.js","sourceRoot":"","sources":["../source/displayNodeElement.ts"],"names":[],"mappings":";;;AAAA,uEAQkC;AAClC,iEAAkD;AAClD,yDAA0D;AAC1D,2DAA8C;AAC9C,+CAA4C;AAE5C,MAAM,CAAC,GAAG,YAAY,CAAC;AACvB,SAAS,MAAM,CAAC,SAAoB;IAChC,QAAQ,SAAS,EAAE;QACf,KAAK,iCAAS,CAAC,QAAQ;YACnB,OAAO,GAAG,CAAC;QACf,KAAK,iCAAS,CAAC,UAAU;YACrB,OAAO,IAAI,CAAC;QAChB,KAAK,iCAAS,CAAC,YAAY;YACvB,OAAO,IAAI,CAAC;QAChB,KAAK,iCAAS,CAAC,MAAM;YACjB,OAAO,GAAG,CAAC;QACf,KAAK,iCAAS,CAAC,MAAM;YACjB,OAAO,GAAG,CAAC;QACf,KAAK,iCAAS,CAAC,QAAQ;YACnB,OAAO,GAAG,CAAC;QACf,KAAK,iCAAS,CAAC,IAAI;YACf,OAAO,GAAG,CAAC;QACf;YACI,OAAO,GAAG,CAAC;KAClB;AACL,CAAC;AACD,MAAM,gBAAgB,GAAG,IAAA,iCAAa,EAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"displayNodeElement.js","sourceRoot":"","sources":["../source/displayNodeElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-address-space
|
|
3
|
+
*/
|
|
4
|
+
import { UAStateMachineEx } from "node-opcua-address-space";
|
|
5
|
+
export declare function dumpStateMachineToPlantUML(stateMachineType: UAStateMachineEx): string;
|
|
6
|
+
export declare function dumpStateMachineToGraphViz(stateMachineType: UAStateMachineEx): string;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dumpStateMachineToGraphViz = exports.dumpStateMachineToPlantUML = void 0;
|
|
4
|
+
function dumpStateMachineToPlantUML(stateMachineType) {
|
|
5
|
+
const lines = [];
|
|
6
|
+
function w(str) {
|
|
7
|
+
lines.push(str);
|
|
8
|
+
}
|
|
9
|
+
function s(state) {
|
|
10
|
+
return state ? state.nodeId.value.toString() : "";
|
|
11
|
+
}
|
|
12
|
+
function n(state) {
|
|
13
|
+
return state ? state.browseName.name.toString() : "";
|
|
14
|
+
}
|
|
15
|
+
//w("@startuml "); // + stateMachineType.browseName.toString() + ".png");
|
|
16
|
+
// initial state if any
|
|
17
|
+
if (stateMachineType.initialState) {
|
|
18
|
+
w(" [*] --> " + s(stateMachineType.initialState));
|
|
19
|
+
w(" " + s(stateMachineType.initialState) + ":" + n(stateMachineType.initialState));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
w("[*] --> [*]");
|
|
23
|
+
}
|
|
24
|
+
function t(transition) {
|
|
25
|
+
let name = n(transition);
|
|
26
|
+
name = name.replace(":", "");
|
|
27
|
+
name = name.replace("To", "\\nTo\\n");
|
|
28
|
+
name = name.replace("Transition", "\\nTransition");
|
|
29
|
+
return name;
|
|
30
|
+
}
|
|
31
|
+
stateMachineType.states && stateMachineType.states.forEach((state) => w(" " + s(state) + ": " + n(state)));
|
|
32
|
+
stateMachineType.transitions && stateMachineType.transitions.forEach((transition) => w(" " + s(transition.fromStateNode) + " --> " + s(transition.toStateNode) + " : " + t(transition)));
|
|
33
|
+
// w("@enduml");
|
|
34
|
+
return lines.join("\n");
|
|
35
|
+
}
|
|
36
|
+
exports.dumpStateMachineToPlantUML = dumpStateMachineToPlantUML;
|
|
37
|
+
/*
|
|
38
|
+
@startuml
|
|
39
|
+
|
|
40
|
+
2930: Unshelved
|
|
41
|
+
|
|
42
|
+
2932: TimedShelved
|
|
43
|
+
|
|
44
|
+
2933: OneShotShelved
|
|
45
|
+
|
|
46
|
+
2930 --> 2932 : "2935\nUnshelvedToTimedShelved"
|
|
47
|
+
|
|
48
|
+
2930 --> 2933 : "2936\nUnshelvedToOneShotShelved"
|
|
49
|
+
|
|
50
|
+
2932 --> 2930 : "2940\nTimedShelvedToUnshelved"
|
|
51
|
+
|
|
52
|
+
2932 --> 2933 : "2942\nTimedShelvedToOneShotShelved"
|
|
53
|
+
|
|
54
|
+
2933 --> 2930 : "2943\nOneShotShelvedToUnshelved"
|
|
55
|
+
|
|
56
|
+
2933 --> 2932 : "2945\nOneShotShelvedToTimedShelved"
|
|
57
|
+
|
|
58
|
+
@enduml
|
|
59
|
+
|
|
60
|
+
*/
|
|
61
|
+
/*
|
|
62
|
+
digraph finite_state_machine {
|
|
63
|
+
rankdir=LR;
|
|
64
|
+
size="8,5"
|
|
65
|
+
node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
|
|
66
|
+
node [shape = circle];
|
|
67
|
+
LR_0 -> LR_2 [ label = "SS(B)" ];
|
|
68
|
+
LR_0 -> LR_1 [ label = "SS(S)" ];
|
|
69
|
+
LR_1 -> LR_3 [ label = "S($end)" ];
|
|
70
|
+
LR_2 -> LR_6 [ label = "SS(b)" ];
|
|
71
|
+
LR_2 -> LR_5 [ label = "SS(a)" ];
|
|
72
|
+
LR_2 -> LR_4 [ label = "S(A)" ];
|
|
73
|
+
LR_5 -> LR_7 [ label = "S(b)" ];
|
|
74
|
+
LR_5 -> LR_5 [ label = "S(a)" ];
|
|
75
|
+
LR_6 -> LR_6 [ label = "S(b)" ];
|
|
76
|
+
LR_6 -> LR_5 [ label = "S(a)" ];
|
|
77
|
+
LR_7 -> LR_8 [ label = "S(b)" ];
|
|
78
|
+
LR_7 -> LR_5 [ label = "S(a)" ];
|
|
79
|
+
LR_8 -> LR_6 [ label = "S(b)" ];
|
|
80
|
+
LR_8 -> LR_5 [ label = "S(a)" ];
|
|
81
|
+
}
|
|
82
|
+
*/
|
|
83
|
+
function dumpStateMachineToGraphViz(
|
|
84
|
+
/*StateMachineProxy*/
|
|
85
|
+
stateMachineType) {
|
|
86
|
+
const lines = [];
|
|
87
|
+
function w(str) {
|
|
88
|
+
lines.push(str);
|
|
89
|
+
}
|
|
90
|
+
function s(state) {
|
|
91
|
+
return state.nodeId.value.toString();
|
|
92
|
+
}
|
|
93
|
+
function n(state) {
|
|
94
|
+
return state.browseName.name.toString();
|
|
95
|
+
}
|
|
96
|
+
function s_full(state) {
|
|
97
|
+
return s(state) + ' [ label = "' + n(state) + '" ]';
|
|
98
|
+
}
|
|
99
|
+
w("digraph finite_state_machine {");
|
|
100
|
+
// initial state if any
|
|
101
|
+
if (stateMachineType.initialState) {
|
|
102
|
+
w("node [ shape = doublecircle];");
|
|
103
|
+
w(" _" + s_full(stateMachineType.initialState) + " ;");
|
|
104
|
+
}
|
|
105
|
+
w("node [ shape = circle];");
|
|
106
|
+
stateMachineType.states.forEach((state) => w(" _" + s_full(state)));
|
|
107
|
+
stateMachineType.transitions.forEach((transition) => w(" _" +
|
|
108
|
+
s(transition.fromStateNode) +
|
|
109
|
+
" -> _" +
|
|
110
|
+
s(transition.toStateNode) +
|
|
111
|
+
" [ " +
|
|
112
|
+
// " labeltooltip = \"" + i(transition) + "\" " +
|
|
113
|
+
', label = "' +
|
|
114
|
+
n(transition) +
|
|
115
|
+
'" ];'));
|
|
116
|
+
w("}");
|
|
117
|
+
return lines.join("\n");
|
|
118
|
+
}
|
|
119
|
+
exports.dumpStateMachineToGraphViz = dumpStateMachineToGraphViz;
|
|
120
|
+
//# sourceMappingURL=dump_state_machine_to_graphviz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dump_state_machine_to_graphviz.js","sourceRoot":"","sources":["../source/dump_state_machine_to_graphviz.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.buildDocumentation = exports.buildDocumentationToString = void 0;
|
|
13
13
|
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
14
|
-
const
|
|
14
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
15
15
|
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
16
16
|
const displayNodeElement_1 = require("./displayNodeElement");
|
|
17
17
|
const tableHelper_1 = require("./tableHelper");
|
|
@@ -36,45 +36,150 @@ function buildDocumentationToString(namespace) {
|
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
exports.buildDocumentationToString = buildDocumentationToString;
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
const toDataTypeStr = (p) => {
|
|
40
|
+
if (p.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
|
|
41
|
+
const v = p;
|
|
42
|
+
const arr = v.valueRank == 1 ? "[]" : "";
|
|
43
|
+
const brn = toDataTypeStr(p.dataTypeObj);
|
|
44
|
+
return brn + arr;
|
|
45
|
+
}
|
|
46
|
+
if (p.nodeClass === node_opcua_data_model_1.NodeClass.DataType) {
|
|
47
|
+
const dataType = p;
|
|
48
|
+
const brn = dataType.browseName.toString();
|
|
49
|
+
return brn;
|
|
50
|
+
}
|
|
51
|
+
return "";
|
|
52
|
+
};
|
|
53
|
+
function dataTypeEnumerationToMarkdown(dataType) {
|
|
41
54
|
const addressSpace = dataType.addressSpace;
|
|
42
55
|
const writer = new Writer();
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
writer.writeLine("\nSubtype of " + ((_a = dataType.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.browseName.toString()));
|
|
56
|
+
writer.writeLine("");
|
|
57
|
+
if (dataType.description) {
|
|
58
|
+
writer.writeLine(dataType.description.text || "");
|
|
47
59
|
}
|
|
60
|
+
writer.writeLine(`\nThe fields of the ${dataType.browseName.name} DataType are defined in the following table:`);
|
|
48
61
|
writer.writeLine("");
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
const definition = dataType.getEnumDefinition();
|
|
63
|
+
writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[node_opcua_variant_1.DataType.Int32]);
|
|
64
|
+
writer.writeLine("");
|
|
65
|
+
const table = new tableHelper_1.TableHelper(["Name", "Value", "Description"]);
|
|
66
|
+
for (const f of definition.fields || []) {
|
|
67
|
+
table.push([f.name, (0, node_opcua_basic_types_1.coerceUInt32)(f.value[1]), f.description.text || ""]);
|
|
68
|
+
}
|
|
69
|
+
writer.writeLine(table.toMarkdownTable());
|
|
70
|
+
const str = dumpTypeRepresentation(dataType);
|
|
71
|
+
writer.writeLine(str);
|
|
72
|
+
return writer.toString();
|
|
73
|
+
}
|
|
74
|
+
function dumpTypeRepresentation(uaType) {
|
|
75
|
+
var _a;
|
|
76
|
+
const className = node_opcua_data_model_1.NodeClass[uaType.nodeClass];
|
|
77
|
+
const writer = new Writer();
|
|
78
|
+
writer.writeLine("\n");
|
|
79
|
+
writer.writeLine(`\nThe representation of the ${uaType.browseName.name} ${className} in the address space is shown in the following table:`);
|
|
80
|
+
const table = new tableHelper_1.TableHelper(["Name", "Attribute"]);
|
|
81
|
+
table.push(["NodeId", uaType.nodeId.toString()]);
|
|
82
|
+
table.push(["NamespaceUri", uaType.addressSpace.getNamespaceUri(uaType.nodeId.namespace)]);
|
|
83
|
+
table.push(["BrowseName", uaType.browseName.name.toString()]);
|
|
84
|
+
table.push(["NodeClass", node_opcua_data_model_1.NodeClass[uaType.nodeClass]]);
|
|
85
|
+
if (uaType.nodeClass === node_opcua_data_model_1.NodeClass.ReferenceType) {
|
|
86
|
+
table.push(["InverseName", uaType.inverseName.text]);
|
|
87
|
+
// table.push(["IsSymmetric", (uaType as UAReferenceType).isSymetric ? "Yes" : "No"]);
|
|
88
|
+
}
|
|
89
|
+
table.push(["IsAbstract", uaType.isAbstract ? "Yes" : "No"]);
|
|
90
|
+
table.push(["SubtypeOf", uaType.subtypeOfObj ? uaType.subtypeOfObj.browseName.toString() : ""]);
|
|
91
|
+
writer.writeLine("");
|
|
92
|
+
writer.writeLine(table.toMarkdownTable());
|
|
93
|
+
writer.writeLine("");
|
|
94
|
+
// forward refereces
|
|
95
|
+
{
|
|
96
|
+
const properties = uaType.findReferencesExAsObject("HasProperty");
|
|
97
|
+
const table = new tableHelper_1.TableHelper(["Reference", "NodeClass", "BrowseName", "DataType", "TypeDefinition", "ModellingRule"]);
|
|
98
|
+
if (uaType.subtypeOfObj) {
|
|
99
|
+
const referenceName = "HasSubType";
|
|
100
|
+
const p = uaType.subtypeOfObj;
|
|
101
|
+
const nodeClass = node_opcua_data_model_1.NodeClass[p.nodeClass];
|
|
102
|
+
const browseName = p.browseName.toString();
|
|
103
|
+
const dataTypeStr = toDataTypeStr(p);
|
|
104
|
+
const modellingRule = p.modellingRule || "";
|
|
105
|
+
const typeDefinitionName = "";
|
|
106
|
+
table.push([referenceName, nodeClass, browseName, dataTypeStr, typeDefinitionName, modellingRule]);
|
|
55
107
|
}
|
|
108
|
+
if (properties.length > 0) {
|
|
109
|
+
writer.writeLine(`\nThe reference of the ${uaType.browseName.name} ${className} is shown in the following table:`);
|
|
110
|
+
writer.writeLine("");
|
|
111
|
+
for (const p of properties) {
|
|
112
|
+
const referenceName = "HasProperty";
|
|
113
|
+
const nodeClass = node_opcua_data_model_1.NodeClass[p.nodeClass];
|
|
114
|
+
const browseName = p.browseName.toString();
|
|
115
|
+
const dataTypeStr = toDataTypeStr(p);
|
|
116
|
+
const typeDefinitionName = (_a = p.typeDefinitionObj) === null || _a === void 0 ? void 0 : _a.browseName.toString();
|
|
117
|
+
const modellingRule = p.modellingRule || "";
|
|
118
|
+
table.push([referenceName, nodeClass, browseName, dataTypeStr, typeDefinitionName, modellingRule]);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
writer.writeLine("");
|
|
56
122
|
writer.writeLine(table.toMarkdownTable());
|
|
123
|
+
writer.writeLine("");
|
|
57
124
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
125
|
+
return writer.toString();
|
|
126
|
+
}
|
|
127
|
+
function dataTypeStructureToMarkdown(dataType) {
|
|
128
|
+
const addressSpace = dataType.addressSpace;
|
|
129
|
+
const writer = new Writer();
|
|
130
|
+
writer.writeLine("");
|
|
131
|
+
if (dataType.description) {
|
|
132
|
+
writer.writeLine(dataType.description.text || "");
|
|
133
|
+
}
|
|
134
|
+
const definition = dataType.getStructureDefinition();
|
|
135
|
+
writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[dataType.basicDataType]);
|
|
136
|
+
writer.writeLine("");
|
|
137
|
+
writer.writeLine(`The fields of the ${dataType.browseName.name} DataType are defined in the following table:`);
|
|
138
|
+
const c = (f) => {
|
|
139
|
+
var _a;
|
|
140
|
+
let dataTypeString = addressSpace.findDataType(f.dataType).browseName.toString();
|
|
141
|
+
if (f.valueRank === 1) {
|
|
142
|
+
dataTypeString += "[]";
|
|
71
143
|
}
|
|
72
|
-
|
|
144
|
+
else if (f.valueRank >= 2) {
|
|
145
|
+
dataTypeString += "[" + ((_a = f.arrayDimensions) === null || _a === void 0 ? void 0 : _a.map((d) => "" + d).join(" ")) + "]";
|
|
146
|
+
}
|
|
147
|
+
// f.maxStringLength ? f.maxStringLength : "",
|
|
148
|
+
// f.arrayDimensions ? f.arrayDimensions : "",
|
|
149
|
+
return dataTypeString;
|
|
150
|
+
};
|
|
151
|
+
const table = new tableHelper_1.TableHelper(["Name", "Type", "Description"]);
|
|
152
|
+
table.push([dataType.browseName.name, "Structure"]);
|
|
153
|
+
for (const f of definition.fields || []) {
|
|
154
|
+
table.push([" " + f.name, c(f), (f.description.text || "").replace(/\n/g, "<br>")]);
|
|
155
|
+
}
|
|
156
|
+
writer.writeLine(table.toMarkdownTable());
|
|
157
|
+
const str = dumpTypeRepresentation(dataType);
|
|
158
|
+
writer.writeLine(str);
|
|
159
|
+
return writer.toString();
|
|
160
|
+
}
|
|
161
|
+
function dataTypeToMarkdown(dataType) {
|
|
162
|
+
if (dataType.isEnumeration()) {
|
|
163
|
+
return dataTypeEnumerationToMarkdown(dataType);
|
|
164
|
+
}
|
|
165
|
+
else if (dataType.isStructure()) {
|
|
166
|
+
return dataTypeStructureToMarkdown(dataType);
|
|
73
167
|
}
|
|
74
168
|
else {
|
|
169
|
+
const writer = new Writer();
|
|
170
|
+
writer.writeLine("");
|
|
171
|
+
if (dataType.description) {
|
|
172
|
+
writer.writeLine(dataType.description.text || "");
|
|
173
|
+
}
|
|
75
174
|
writer.writeLine("\nBasic Type: " + node_opcua_variant_1.DataType[dataType.basicDataType]);
|
|
76
175
|
writer.writeLine("");
|
|
176
|
+
return writer.toString();
|
|
77
177
|
}
|
|
178
|
+
}
|
|
179
|
+
function dumpReferenceType(referenceType) {
|
|
180
|
+
const writer = new Writer();
|
|
181
|
+
const str = dumpTypeRepresentation(referenceType);
|
|
182
|
+
writer.writeLine(str);
|
|
78
183
|
return writer.toString();
|
|
79
184
|
}
|
|
80
185
|
function buildDocumentation(namespace, writer) {
|
|
@@ -86,65 +191,74 @@ function buildDocumentation(namespace, writer) {
|
|
|
86
191
|
writer.writeLine("");
|
|
87
192
|
writer.writeLine("# Namespace " + namespaceUri);
|
|
88
193
|
writer.writeLine("");
|
|
89
|
-
// -------------- writeReferences
|
|
90
194
|
const namespacePriv = namespace;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
writer.writeLine("
|
|
195
|
+
// -------------- writeReferences
|
|
196
|
+
if (namespacePriv._referenceTypeCount() > 0) {
|
|
197
|
+
writer.writeLine("");
|
|
198
|
+
writer.writeLine("## References ");
|
|
199
|
+
writer.writeLine("");
|
|
200
|
+
for (const referenceType of namespacePriv._referenceTypeIterator()) {
|
|
201
|
+
writer.writeLine("\n\n### reference " + referenceType.browseName.name);
|
|
202
|
+
dumpReferenceType(referenceType);
|
|
203
|
+
}
|
|
96
204
|
}
|
|
97
205
|
function d(node) {
|
|
98
206
|
return node.description ? node.description.text.toString() : "";
|
|
99
207
|
}
|
|
100
208
|
// -------------- writeDataType
|
|
101
|
-
|
|
102
|
-
writer.writeLine("## DataTypes");
|
|
103
|
-
writer.writeLine("");
|
|
104
|
-
for (const dataType of namespacePriv._dataTypeIterator()) {
|
|
105
|
-
writer.writeLine("\n\n### " + dataType.browseName.name.toString());
|
|
209
|
+
if (namespacePriv._dataTypeCount() > 0) {
|
|
106
210
|
writer.writeLine("");
|
|
107
|
-
writer.writeLine(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
writer.writeLine("## ObjectTypes");
|
|
112
|
-
writer.writeLine("");
|
|
113
|
-
for (const objectType of namespacePriv._objectTypeIterator()) {
|
|
114
|
-
writer.writeLine("\n\n### " + objectType.browseName.name.toString());
|
|
115
|
-
writer.writeLine(d(objectType));
|
|
116
|
-
writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.dumpClassHierachry)(objectType, { showBaseType: true, depth: 2 })));
|
|
117
|
-
writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.opcuaToDot)(objectType)));
|
|
118
|
-
// enumerate components
|
|
119
|
-
writer.writeLine((0, displayNodeElement_1.displayNodeElement)(objectType, { format: "markdown" }));
|
|
120
|
-
for (const comp of objectType.getComponents()) {
|
|
121
|
-
writer.writeLine("\n\n#### " + comp.browseName.name.toString());
|
|
211
|
+
writer.writeLine("## DataTypes");
|
|
212
|
+
writer.writeLine("");
|
|
213
|
+
for (const dataType of namespacePriv._dataTypeIterator()) {
|
|
214
|
+
writer.writeLine("\n\n### " + dataType.browseName.name.toString());
|
|
122
215
|
writer.writeLine("");
|
|
123
|
-
writer.writeLine(
|
|
216
|
+
writer.writeLine(dataTypeToMarkdown(dataType));
|
|
124
217
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
218
|
+
}
|
|
219
|
+
// -------------- writeObjectType
|
|
220
|
+
if (namespacePriv._objectTypeCount() > 0) {
|
|
221
|
+
writer.writeLine("");
|
|
222
|
+
writer.writeLine("## ObjectTypes");
|
|
223
|
+
writer.writeLine("");
|
|
224
|
+
for (const objectType of namespacePriv._objectTypeIterator()) {
|
|
225
|
+
writer.writeLine("\n\n### " + objectType.browseName.name.toString());
|
|
226
|
+
writer.writeLine(d(objectType));
|
|
227
|
+
writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.dumpClassHierachry)(objectType, { showBaseType: true, depth: 2 })));
|
|
228
|
+
writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.opcuaToDot)(objectType)));
|
|
229
|
+
// enumerate components
|
|
230
|
+
writer.writeLine((0, displayNodeElement_1.displayNodeElement)(objectType, { format: "markdown" }));
|
|
231
|
+
for (const comp of objectType.getComponents()) {
|
|
232
|
+
writer.writeLine("\n\n#### " + comp.browseName.name.toString());
|
|
233
|
+
writer.writeLine("");
|
|
234
|
+
writer.writeLine(d(comp));
|
|
235
|
+
}
|
|
236
|
+
for (const comp of objectType.getProperties()) {
|
|
237
|
+
writer.writeLine("\n\n#### " + comp.browseName.name.toString());
|
|
238
|
+
writer.writeLine("");
|
|
239
|
+
writer.writeLine(d(comp));
|
|
240
|
+
}
|
|
129
241
|
}
|
|
130
242
|
}
|
|
131
243
|
// -------------- writeVariableType
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
for (const variableType of namespacePriv._variableTypeIterator()) {
|
|
136
|
-
writer.writeLine("\n\n### " + variableType.browseName.name.toString());
|
|
137
|
-
writer.writeLine(d(variableType));
|
|
244
|
+
if (namespacePriv._variableTypeCount() > 0) {
|
|
245
|
+
writer.writeLine("");
|
|
246
|
+
writer.writeLine("## VariableTypes");
|
|
138
247
|
writer.writeLine("");
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
writer.writeLine((0, displayNodeElement_1.displayNodeElement)(variableType, { format: "markdown" }));
|
|
143
|
-
for (const reference of variableType.allReferences()) {
|
|
144
|
-
const n = reference.node;
|
|
145
|
-
writer.writeLine("\n\n#### " + n.browseName.name.toString());
|
|
248
|
+
for (const variableType of namespacePriv._variableTypeIterator()) {
|
|
249
|
+
writer.writeLine("\n\n### " + variableType.browseName.name.toString());
|
|
250
|
+
writer.writeLine(d(variableType));
|
|
146
251
|
writer.writeLine("");
|
|
147
|
-
writer.writeLine(
|
|
252
|
+
writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.dumpClassHierachry)(variableType, { showBaseType: true, depth: 2 })));
|
|
253
|
+
writer.writeLine((0, to_graphivz_1.graphVizToPlantUml)((0, to_graphivz_1.opcuaToDot)(variableType)));
|
|
254
|
+
// enumerate components
|
|
255
|
+
writer.writeLine((0, displayNodeElement_1.displayNodeElement)(variableType, { format: "markdown" }));
|
|
256
|
+
for (const reference of variableType.allReferences()) {
|
|
257
|
+
const n = reference.node;
|
|
258
|
+
writer.writeLine("\n\n#### " + n.browseName.name.toString());
|
|
259
|
+
writer.writeLine("");
|
|
260
|
+
writer.writeLine(d(n));
|
|
261
|
+
}
|
|
148
262
|
}
|
|
149
263
|
}
|
|
150
264
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate_markdown_doc.js","sourceRoot":"","sources":["../source/generate_markdown_doc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate_markdown_doc.js","sourceRoot":"","sources":["../source/generate_markdown_doc.ts"],"names":[],"mappings":"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"}
|