Params: Switch level to category and move it to attribute along with volatile

This makes it easier for QGC to parse.
This commit is contained in:
Lorenz Meier
2018-01-08 09:27:22 +01:00
parent 55e0588661
commit 7f12f4ae9b
3 changed files with 18 additions and 3 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ add_custom_command(OUTPUT ${parameters_xml}
--inject-xml ${CMAKE_CURRENT_SOURCE_DIR}/parameters_injected.xml --inject-xml ${CMAKE_CURRENT_SOURCE_DIR}/parameters_injected.xml
--overrides ${PARAM_DEFAULT_OVERRIDES} --overrides ${PARAM_DEFAULT_OVERRIDES}
#--verbose #--verbose
DEPENDS ${param_src_files} px_process_params.py px4params/srcparser.py px4params/srcscanner.py parameters_injected.xml DEPENDS ${param_src_files} px_process_params.py px4params/srcparser.py px4params/srcscanner.py px4params/xmlout.py parameters_injected.xml
COMMENT "Generating parameters.xml" COMMENT "Generating parameters.xml"
) )
add_custom_target(parameters_xml DEPENDS ${parameters_xml}) add_custom_target(parameters_xml DEPENDS ${parameters_xml})
@@ -58,6 +58,7 @@ class Parameter(object):
self.type = type self.type = type
self.default = default self.default = default
self.volatile = "false" self.volatile = "false"
self.category = ""
def GetName(self): def GetName(self):
return self.name return self.name
@@ -68,6 +69,9 @@ class Parameter(object):
def GetDefault(self): def GetDefault(self):
return self.default return self.default
def GetCategory(self):
return self.category.title()
def GetVolatile(self): def GetVolatile(self):
return self.volatile return self.volatile
@@ -95,6 +99,12 @@ class Parameter(object):
""" """
self.volatile = "true" self.volatile = "true"
def SetCategory(self, category):
"""
Set param category
"""
self.category = category
def GetFieldCodes(self): def GetFieldCodes(self):
""" """
Return list of existing field codes in convenient order Return list of existing field codes in convenient order
@@ -165,7 +175,7 @@ class SourceParser(object):
re_remove_dots = re.compile(r'\.+$') re_remove_dots = re.compile(r'\.+$')
re_remove_carriage_return = re.compile('\n+') re_remove_carriage_return = re.compile('\n+')
valid_tags = set(["group", "board", "min", "max", "unit", "decimal", "increment", "reboot_required", "value", "boolean", "bit", "level", "volatile"]) valid_tags = set(["group", "board", "min", "max", "unit", "decimal", "increment", "reboot_required", "value", "boolean", "bit", "category", "volatile"])
# Order of parameter groups # Order of parameter groups
priority = { priority = {
@@ -294,6 +304,8 @@ class SourceParser(object):
group = tags[tag] group = tags[tag]
elif tag == "volatile": elif tag == "volatile":
param.SetVolatile() param.SetVolatile()
elif tag == "category":
param.SetCategory(tags[tag])
elif tag not in self.valid_tags: elif tag not in self.valid_tags:
sys.stderr.write("Skipping invalid documentation tag: '%s'\n" % tag) sys.stderr.write("Skipping invalid documentation tag: '%s'\n" % tag)
return False return False
@@ -41,7 +41,10 @@ class XMLOutput():
xml_param.attrib["name"] = param.GetName() xml_param.attrib["name"] = param.GetName()
xml_param.attrib["default"] = param.GetDefault() xml_param.attrib["default"] = param.GetDefault()
xml_param.attrib["type"] = param.GetType() xml_param.attrib["type"] = param.GetType()
xml_param.attrib["volatile"] = param.GetVolatile() if (param.GetVolatile() == "true"):
xml_param.attrib["volatile"] = param.GetVolatile()
if (param.GetCategory()):
xml_param.attrib["category"] = param.GetCategory()
last_param_name = param.GetName() last_param_name = param.GetName()
for code in param.GetFieldCodes(): for code in param.GetFieldCodes():
value = param.GetFieldValue(code) value = param.GetFieldValue(code)