Merge opendbc subtree

old-commit-hash: 35b08e1e3d
commatwo_master
Vehicle Researcher 7 years ago
commit c738779bd3
  1. 56
      opendbc/generator/generator.py

@ -4,34 +4,46 @@ import re
cur_path = os.path.dirname(os.path.realpath(__file__)) cur_path = os.path.dirname(os.path.realpath(__file__))
generator_path = os.path.join(cur_path, '../') generator_path = os.path.join(cur_path, '../')
include_pattern = re.compile(r'CM_ "IMPORT (.*?)"')
for dir_name, _, _ in os.walk(cur_path):
def read_dbc(dir_name, filename):
with open(os.path.join(dir_name, filename)) as file_in:
return file_in.read()
def create_dbc(dir_name, filename):
dbc_file_in = read_dbc(dir_name, filename)
includes = include_pattern.findall(dbc_file_in)
output_filename = filename.replace('.dbc', '_generated.dbc')
output_file_location = os.path.join(generator_path, output_filename)
with open(output_file_location, 'w') as dbc_file_out:
dbc_file_out.write('CM_ "AUTOGENERATED FILE, DO NOT EDIT"\n')
for include_filename in reversed(includes):
include_file_header = '\n\nCM_ "Imported file %s starts here"\n' % include_filename
dbc_file_out.write(include_file_header)
include_file = read_dbc(dir_name, include_filename)
dbc_file_out.write(include_file)
dbc_file_out.write('\nCM_ "%s starts here"\n' % filename)
core_dbc = include_pattern.sub('', dbc_file_in)
dbc_file_out.write(core_dbc)
for dir_name, _, filenames in os.walk(cur_path):
if dir_name == cur_path: if dir_name == cur_path:
continue continue
print dir_name print dir_name
for filename in filenames:
for filename in os.listdir(dir_name):
if filename.startswith('_'): if filename.startswith('_'):
continue continue
print filename print filename
dbc_file = open(os.path.join(dir_name, filename)).read() create_dbc(dir_name, filename)
dbc_file = '\nCM_ "%s starts here"\n' % filename + dbc_file
includes = re.finditer(r'CM_ "IMPORT (.*?)"', dbc_file)
for include in includes:
dbc_file = dbc_file.replace(include.group(0), '')
include_path = os.path.join(dir_name, include.group(1))
# Load included file
include_file = open(include_path).read()
include_file = '\n\nCM_ "Imported file %s starts here"\n' % include.group(1) + include_file
dbc_file = include_file + dbc_file
dbc_file = 'CM_ "AUTOGENERATED FILE, DO NOT EDIT"\n' + dbc_file
output_filename = filename.replace('.dbc', '_generated.dbc')
output_dbc_file = open(os.path.join(generator_path, output_filename), 'w')
output_dbc_file.write(dbc_file)
output_dbc_file.close()

Loading…
Cancel
Save