Skip to content

Commit fe48e26

Browse files
committed
update to most recent 1.04 files
- update nodeIds,statusCOdes - update nodeset2.xml files - update type definitions - update AttributeId enums
1 parent a92d7f1 commit fe48e26

17 files changed

Lines changed: 20250 additions & 15065 deletions

File tree

code_gen/NodeIds.csv

Lines changed: 170 additions & 61 deletions
Large diffs are not rendered by default.

code_gen/fetch.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,6 @@ function fetch_from_github(version,file){
262262

263263
}
264264
const version = "1.04";
265-
fetch_from_github(version, "Schema/Opc.Ua.StatusCodes.csv");
266265
fetch_from_github(version, "Schema/StatusCode.csv");
267266
fetch_from_github(version, "Schema/NodeIds.csv");
268267
fetch_from_github(version, "Schema/Opc.Ua.NodeSet2.xml");

code_gen/generate_node_ids.js

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,79 +4,78 @@ const path = require("path");
44
const csv = require("csv");
55
const sprintf = require("sprintf-js").sprintf;
66

7-
const datafolder = path.join(__dirname,"1.03");
7+
const datafolder = path.join(__dirname, "1.04");
88

99
// see OPC-UA Part 6 , A2
10-
const codeMap= {};
10+
const codeMap = {};
1111

12-
const parser = csv.parse({delimiter: ','}, function(err, data){
12+
const parser = csv.parse({ delimiter: "," }, function (err, data) {
1313
convert(data);
1414
});
1515

16-
fs.createReadStream(path.join(datafolder,'/NodeIds.csv')).pipe(parser);
16+
fs.createReadStream(path.join(datafolder, "/NodeIds.csv")).pipe(parser);
1717

1818

19-
function convert(data)
20-
{
21-
let name,id,type,codeName,value,typeName;
22-
const metaMap = { };
19+
function convert(data) {
20+
let name, id, type, codeName, value, typeName;
21+
const metaMap = {};
2322

24-
data.forEach(function(row) {
23+
data.forEach(function (row) {
2524

2625
codeName = row[0];
27-
value = row[1];
28-
type = row[2];
26+
value = row[1];
27+
type = row[2];
2928

3029
if (!metaMap.hasOwnProperty(type)) {
31-
metaMap[type]= {};
30+
metaMap[type] = {};
3231
}
3332

3433
codeMap[codeName] = row;
35-
metaMap[type][codeName]= row;
34+
metaMap[type][codeName] = row;
3635

3736

3837
});
39-
const outFile = fs.createWriteStream(path.join("../packages/node-opcua-constants/src","opcua_node_ids.ts"));
38+
const outFile = fs.createWriteStream(path.join("../packages/node-opcua-constants/source", "opcua_node_ids.ts"));
4039
outFile.write("// this file has been automatically generated\n");
4140
outFile.write("// using code_gen/generate_node_ids.js\n");
4241

4342
let e;
4443
if (false) {
4544
outFile.write(" exports.NodeIds = { \n");
46-
for(let name in codeMap) {
45+
for (let name in codeMap) {
4746
if (codeMap.hasOwnProperty(name)) {
4847
e = codeMap[name];
4948
name = e[0];
50-
id = parseInt(e[1],10);
49+
id = parseInt(e[1], 10);
5150
typeName = e[2];
5251

53-
outFile.write(sprintf(" %40s: { name: %40s , value: %6d }, \n",name,"'"+name+"'",id));
52+
outFile.write(sprintf(" %40s: { name: %40s , value: %6d }, \n", name, "'" + name + "'", id));
5453
}
5554
}
5655
outFile.write("};\n");
5756

5857
}
5958

6059
let typeMap;
61-
for(typeName in metaMap) {
60+
for (typeName in metaMap) {
6261
if (metaMap.hasOwnProperty(typeName)) {
6362
typeMap = metaMap[typeName];
64-
outFile.write(" export enum "+ typeName + "Ids { \n");
63+
outFile.write(" export enum " + typeName + "Ids { \n");
6564

6665
const names = Object.keys(typeMap);
6766

68-
for(const i=0;i< names.length;i++) {
67+
for (let i = 0; i < names.length; i++) {
6968
name = names[i];
7069

7170
if (typeMap.hasOwnProperty(name)) {
7271
e = typeMap[name];
7372
name = e[0];
74-
id = parseInt(e[1],10);
73+
id = parseInt(e[1], 10);
7574
type = e[2];
76-
if (i +1 <names.length) {
77-
outFile.write(sprintf(" %80s= %6d , \n",name,id));
75+
if (i + 1 < names.length) {
76+
outFile.write(sprintf(" %80s= %6d , \n", name, id));
7877
} else {
79-
outFile.write(sprintf(" %80s= %6d \n",name,id));
78+
outFile.write(sprintf(" %80s= %6d \n", name, id));
8079
}
8180
}
8281
}

code_gen/generate_status_code.js

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,44 @@
22
* utility to generate source file ./lib/raw_status_codes.js from Opc.Ua.StatusCodes.csv
33
*
44
*/
5-
const util = require('util');
5+
const util = require("util");
66
const xml = require("ersatz-node-expat");
77
const fs = require("fs");
88
const path = require("path");
99
const csv = require("csv");
1010
const sprintf = require("sprintf-js").sprintf;
1111

1212

13-
1413
// see OPC-UA Part 6 , A2
1514
const codeMap = {};
1615
const code_list = [];
1716

1817

19-
const datafolder = path.join(__dirname,"1.03");
18+
const datafolder = path.join(__dirname, "1.04");
19+
2020

21-
csv().from.stream(fs.createReadStream(path.join(datafolder,'/Opc.Ua.StatusCodes.csv')).to.array(function (data) {
22-
data.forEach(function (e) {
23-
const codeName = e[0];
24-
console.log(e);
21+
const parser = csv.parse({
22+
delimiter: "@"
23+
}).on("readable", function () {
24+
25+
let record;
26+
while (!!(record = this.read())) {
27+
record = record[0].split(",");
28+
const codeName = record[0];
29+
console.log(record.length ,record);
2530
code_list.push({
26-
name: e[0],
27-
value: parseInt(e[1],16),
28-
description: e[2]
31+
name: record[0],
32+
value: parseInt(record[1], 16),
33+
description: record.slice(2).join(",")
2934
});
30-
codeMap[codeName] = parseInt(e[1],16);
31-
});
32-
//xx console.log(data);
33-
34-
console.log("codeMap" , codeMap);
35+
codeMap[codeName] = parseInt(record[1], 16);
36+
}
37+
}).on("end", function () {
38+
console.log("codeMap", codeMap);
3539
parseStatusCodeXML();
40+
});
3641

37-
}));
42+
fs.createReadStream(path.join(datafolder, "/StatusCode.csv")).pipe(parser);
3843

3944
function parseStatusCodeXML() {
4045

@@ -43,20 +48,30 @@ function parseStatusCodeXML() {
4348
const parser = new xml.Parser();
4449

4550
const obj = {};
46-
const outFile = fs.createWriteStream(__dirname + "/../lib/raw_status_codes.js");
51+
const outFile = fs.createWriteStream(__dirname + "/../packages/node-opcua-constants/source/raw_status_codes.ts");
52+
outFile.write(`
53+
/**
54+
* @module node-opcua-constants
55+
*/
56+
// this file has been automatically generated
4757
48-
outFile.write("// this file has been automatically generated\n");
58+
export interface IStatusCodeDescription {
59+
name: string;
60+
value: number;
61+
description: string | undefined;
62+
}
63+
`);
4964

50-
outFile.write(" exports.StatusCodes = { \n");
65+
outFile.write(" export const StatusCodes: any = { \n");
5166

5267
outFile.write(" Good: { name:'Good', value: 0, description:'No Error' }\n");
5368

5469

55-
const sep=",";
70+
const sep = ",";
5671

57-
code_list.forEach(function(obj){
72+
code_list.forEach(function (obj) {
5873
const s = sprintf("%1s %40s: { name: %40s , value: %6s ,description: \"%s\"}\n",
59-
sep, obj.name, "'" + obj.name + "'", "0x"+obj.value.toString(16), obj.description);
74+
sep, obj.name, "\"" + obj.name + "\"", "0x" + obj.value.toString(16), obj.description);
6075
outFile.write(s);
6176
});
6277
outFile.write("};\n");

package-lock.json

Lines changed: 47 additions & 54 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)