|
@@ -10,35 +10,33 @@ import platform
|
|
import getpass
|
|
import getpass
|
|
import time
|
|
import time
|
|
import argparse
|
|
import argparse
|
|
|
|
+from io import open
|
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('statuscodes', help='path/to/Opc.Ua.StatusCodes.csv')
|
|
parser.add_argument('statuscodes', help='path/to/Opc.Ua.StatusCodes.csv')
|
|
parser.add_argument('outfile', help='outfile w/o extension')
|
|
parser.add_argument('outfile', help='outfile w/o extension')
|
|
args = parser.parse_args()
|
|
args = parser.parse_args()
|
|
|
|
|
|
-f = open(args.statuscodes)
|
|
|
|
-input_str = f.read()
|
|
|
|
-f.close()
|
|
|
|
-input_str = input_str.replace('\r','')
|
|
|
|
-rows = list(map(lambda x:tuple(x.split(',')), input_str.split('\n')))
|
|
|
|
|
|
+rows = []
|
|
|
|
+with open(args.statuscodes, mode="rt") as f:
|
|
|
|
+ lines = f.readlines()
|
|
|
|
+ for l in lines:
|
|
|
|
+ rows.append(tuple(l.strip().split(',')))
|
|
|
|
|
|
-fc = open(args.outfile + ".c",'w')
|
|
|
|
|
|
+fc = open(args.outfile + ".c", "wt", encoding='utf8')
|
|
def printc(string):
|
|
def printc(string):
|
|
- print(string, end='\n', file=fc)
|
|
|
|
|
|
+ print(string, end=u'\n', file=fc)
|
|
|
|
|
|
-printc('''/**********************************************************
|
|
|
|
- * '''+args.outfile+'''.hgen -- do not modify
|
|
|
|
- **********************************************************
|
|
|
|
- * Generated from '''+args.statuscodes+''' with script '''+sys.argv[0]+'''
|
|
|
|
- * on host '''+platform.uname()[1]+''' by user '''+getpass.getuser()+''' at '''+
|
|
|
|
- time.strftime("%Y-%m-%d %I:%M:%S")+'''
|
|
|
|
- **********************************************************/\n
|
|
|
|
|
|
+printc(u'''/**********************************************************
|
|
|
|
+ * Autogenerated -- do not modify
|
|
|
|
+ * Generated from %s with script %s
|
|
|
|
+ *********************************************************/
|
|
|
|
|
|
-#include "ua_types.h"''')
|
|
|
|
|
|
+#include "ua_types.h"''' % (args.statuscodes, sys.argv[0]))
|
|
|
|
|
|
count = 2 + len(rows)
|
|
count = 2 + len(rows)
|
|
|
|
|
|
-printc('''
|
|
|
|
|
|
+printc(u'''
|
|
|
|
|
|
/* Definition for the deprecated StatusCode description API */
|
|
/* Definition for the deprecated StatusCode description API */
|
|
const UA_StatusCodeDescription statusCodeExplanation_default = {0xffffffff, "", ""};
|
|
const UA_StatusCodeDescription statusCodeExplanation_default = {0xffffffff, "", ""};
|
|
@@ -55,12 +53,13 @@ const char * UA_StatusCode_name(UA_StatusCode code) {
|
|
}
|
|
}
|
|
#else
|
|
#else
|
|
static const size_t statusCodeDescriptionsSize = %s;
|
|
static const size_t statusCodeDescriptionsSize = %s;
|
|
-static const UA_StatusCodeName statusCodeDescriptions[%i] = {''' % (count, count))
|
|
|
|
|
|
+static const UA_StatusCodeName statusCodeDescriptions[%i] = {
|
|
|
|
+ {UA_STATUSCODE_GOOD, \"Good\"},
|
|
|
|
+''' % (count, count))
|
|
|
|
|
|
-printc(" {UA_STATUSCODE_GOOD, \"Good\"},")
|
|
|
|
for row in rows:
|
|
for row in rows:
|
|
- printc(" {UA_STATUSCODE_%s, \"%s\",}," % (row[0].upper(), row[0]))
|
|
|
|
-printc(''' {0xffffffff, "Unknown StatusCode"}
|
|
|
|
|
|
+ printc(u" {UA_STATUSCODE_%s, \"%s\",}," % (row[0].upper(), row[0]))
|
|
|
|
+printc(u''' {0xffffffff, "Unknown StatusCode"}
|
|
};
|
|
};
|
|
|
|
|
|
const char * UA_StatusCode_name(UA_StatusCode code) {
|
|
const char * UA_StatusCode_name(UA_StatusCode code) {
|