5 inputfile = open(
"StatusCodes_add.csv")
8 name, val, doc = line.split(
",", 2)
9 additional[int(val, 0)] = (name, val, doc)
11 inputfile = open(
"StatusCodes.csv")
13 for line
in inputfile:
14 name, val, doc = line.split(
",", 2)
15 result.append((name, val, doc))
16 additional.pop(int(val, 0),
None)
17 add = [ additional[k]
for k
in sorted(additional.keys()) ]
20 if __name__ ==
"__main__":
22 outputfile = open(
"../opcua/ua/status_codes.py",
"w")
23 outputfile.write(
"#AUTOGENERATED!!!\n")
24 outputfile.write(
"\n")
25 outputfile.write(
"from opcua.ua.uaerrors import UaStatusCodeError\n")
26 outputfile.write(
"from opcua.ua import ua_binary as uabin\n")
28 outputfile.write(
"\n")
30 outputfile.write(
"class StatusCodes(object):\n")
31 for name, val, doc
in codes:
33 outputfile.write(
" {0} = {1}\n".format(name, val))
34 outputfile.write(
"\n")
35 outputfile.write(
"\n")
37 outputfile.write(
"code_to_name_doc = {\n")
38 for name, val, doc
in codes:
40 doc = doc.replace(
"'",
'"')
41 outputfile.write(
" {0}: ('{1}', '{2}'),\n".format(val, name, doc))
42 outputfile.write(
"}\n")
43 outputfile.write(
"\n")
44 outputfile.write(
"\n")
46 outputfile.write(
"""def get_name_and_doc(val): 47 if val in code_to_name_doc: 48 return code_to_name_doc[val] 50 if uabin.test_bit(val, 31): 51 return 'Bad', 'Unknown StatusCode value: {}'.format(val) 52 elif uabin.test_bit(val, 30): 53 return 'UncertainIn', 'Unknown StatusCode value: {}'.format(val) 55 return 'Good', 'Unknown StatusCode value: {}'.format(val)