1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- from __future__ import print_function
- import inspect
- import sys
- import platform
- import getpass
- import time
- import re
- import argparse
- parser = argparse.ArgumentParser()
- parser.add_argument('nodeids', help='path/to/NodeIds.csv')
- parser.add_argument('outfile', help='outfile w/o extension')
- args = parser.parse_args()
- def useNodeId(row):
- if row[0] == "":
- return False
- if "Test" in row[0]:
- return False
- if row[0].startswith("OpcUa_"):
- return False
- if row[0].startswith("SessionsDiagnosticsSummaryType_"):
- return False
- if "Type_" in row[0]:
- return False
- return True
- f = open(args.nodeids)
- input_str = f.read() + "\nHasModelParent,50,ReferenceType"
- f.close()
- input_str = input_str.replace('\r','')
- rows = map(lambda x:tuple(x.split(',')), input_str.split('\n'))
- fh = open(args.outfile + ".h",'w')
- def printh(string):
- print(string, end='\n', file=fh)
- printh('''/**********************************************************
- * '''+args.outfile+'''.hgen -- do not modify
- **********************************************************
- * Generated from '''+args.nodeids+''' with script '''+sys.argv[0]+'''
- * on host '''+platform.uname()[1]+''' by user '''+getpass.getuser()+''' at '''+
- time.strftime("%Y-%m-%d %I:%M:%S")+'''
- **********************************************************/\n
- #ifndef ''' + args.outfile.upper().split("/")[-1] + '''_H_
- #define ''' + args.outfile.upper().split("/")[-1] + '''_H_
- ''')
- for row in rows:
- if useNodeId(row):
- printh("#define UA_NS0ID_%s %s // %s" % (row[0].upper(), row[1], row[2]))
- printh('\n#endif /* ' + args.outfile.upper().split("/")[-1] + '_H_ */')
- fh.close()
|