@@ -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