Skip to content

Commit 69740b8

Browse files
committed
IMPROVEMENT: Extend parameter documentation metadata if <parameter_file>.pdef.xml exists
1 parent 352d4eb commit 69740b8

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

MethodicConfigurator/backend_filesystem.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,14 @@ def re_init(self, vehicle_dir: str, vehicle_type: str):
116116
[self.doc_dict, self.param_default_dict] = parse_parameter_metadata(xml_url, xml_dir, PARAM_DEFINITION_XML_FILE,
117117
vehicle_type, TOOLTIP_MAX_LENGTH)
118118

119+
# Extend parameter documentation metadata if <parameter_file>.pdef.xml exists
120+
for filename in self.file_parameters:
121+
pdef_xml_file = filename.replace(".param", ".pdef.xml")
122+
if os_path.exists(os_path.join(xml_dir, pdef_xml_file)):
123+
[doc_dict, _param_default_dict] = parse_parameter_metadata("", xml_dir, pdef_xml_file,
124+
vehicle_type, TOOLTIP_MAX_LENGTH)
125+
self.doc_dict.update(doc_dict)
126+
119127
self.__extend_and_reformat_parameter_documentation_metadata()
120128

121129
def rename_parameter_files(self):
@@ -130,23 +138,26 @@ def rename_parameter_files(self):
130138
os_rename(old_filename_path, new_filename_path)
131139
logging_info("Renamed %s to %s", old_filename, new_filename)
132140

133-
def __extend_and_reformat_parameter_documentation_metadata(self):
141+
def __extend_and_reformat_parameter_documentation_metadata(self): # pylint: disable=too-many-branches
134142
for param_name, param_info in self.doc_dict.items():
135143
if 'fields' in param_info:
136-
if 'Units' in param_info['fields']:
137-
param_info['unit'] = param_info['fields']['Units'].split('(')[0].strip()
138-
param_info['unit_tooltip'] = param_info['fields']['Units'].split('(')[1].strip(')')
139-
if 'Range' in param_info['fields']:
140-
param_info['min'] = float(param_info['fields']['Range'].split(' ')[0].strip())
141-
param_info['max'] = float(param_info['fields']['Range'].split(' ')[1].strip())
142-
if 'Calibration' in param_info['fields']:
143-
param_info['Calibration'] = self.str_to_bool(param_info['fields']['Calibration'].strip())
144-
if 'ReadOnly' in param_info['fields']:
145-
param_info['ReadOnly'] = self.str_to_bool(param_info['fields']['ReadOnly'].strip())
146-
if 'RebootRequired' in param_info['fields']:
147-
param_info['RebootRequired'] = self.str_to_bool(param_info['fields']['RebootRequired'].strip())
148-
if 'Bitmask' in param_info['fields']:
149-
bitmask_items = param_info['fields']['Bitmask'].split(',')
144+
param_fields = param_info['fields']
145+
if 'Units' in param_fields:
146+
units_list = param_fields['Units'].split('(')
147+
param_info['unit'] = units_list[0].strip()
148+
if len(units_list) > 1:
149+
param_info['unit_tooltip'] = units_list[1].strip(')').strip()
150+
if 'Range' in param_fields:
151+
param_info['min'] = float(param_fields['Range'].split(' ')[0].strip())
152+
param_info['max'] = float(param_fields['Range'].split(' ')[1].strip())
153+
if 'Calibration' in param_fields:
154+
param_info['Calibration'] = self.str_to_bool(param_fields['Calibration'].strip())
155+
if 'ReadOnly' in param_fields:
156+
param_info['ReadOnly'] = self.str_to_bool(param_fields['ReadOnly'].strip())
157+
if 'RebootRequired' in param_fields:
158+
param_info['RebootRequired'] = self.str_to_bool(param_fields['RebootRequired'].strip())
159+
if 'Bitmask' in param_fields:
160+
bitmask_items = param_fields['Bitmask'].split(',')
150161
param_info['Bitmask'] = {}
151162
for item in bitmask_items:
152163
key, value = item.split(':')

0 commit comments

Comments
 (0)