diff --git a/Tools/px4params/markdownout.py b/Tools/px4params/markdownout.py
index 4fa1836000..16ce2f3ee4 100644
--- a/Tools/px4params/markdownout.py
+++ b/Tools/px4params/markdownout.py
@@ -8,27 +8,92 @@ class MarkdownTablesOutput():
"\n")
for group in groups:
result += '## %s\n\n' % group.GetName()
- result += '
\n'
- result += '\n'
- result += '| Name | Description | Min | Max | Default |
\n'
- result += '\n'
+
+ #Check if scope (module where parameter is defined) is the same for all parameters in the group.
+ # If so then display just once about the table.
+ scope_set = set()
+ for param in group.GetParams():
+ scope_set.add(param.GetFieldValue("scope"))
+ if len(scope_set)==1:
+ result+='\nThe module where these parameters are defined is: *%s*.\n\n' % list(scope_set)[0]
+
+
+ result += '\n'
+ result += ' \n'
+ result += ' \n'
+ result += ' | Name | Description | Min > Max (Incr.) | Default | Units |
\n'
+ result += ' \n'
result += '\n'
-
+
for param in group.GetParams():
code = param.GetName()
- def_val = param.GetDefault() or ''
name = param.GetFieldValue("short_desc") or ''
+ long_desc = param.GetFieldValue("long_desc") or ''
min_val = param.GetFieldValue("min") or ''
max_val = param.GetFieldValue("max") or ''
- long_desc = param.GetFieldValue("long_desc") or ''
+ increment = param.GetFieldValue("increment") or ''
+ def_val = param.GetDefault() or ''
+ unit = param.GetFieldValue("unit") or ''
+ type = param.GetType()
+ reboot_required = param.GetFieldValue("reboot_required") or ''
+ #board = param.GetFieldValue("board") or '' ## Disabled as no board values are defined in any parameters!
+ #decimal = param.GetFieldValue("decimal") or '' #Disabled as is intended for GCS not people
+ #field_codes = param.GetFieldCodes() ## Disabled as not needed for display.
+ #boolean = param.GetFieldValue("boolean") # or '' # Disabled - does not appear useful.
+
+
+ # Format values for display.
+ # Display min/max/increment value based on what values are defined.
+ max_min_combined = ''
+ if min_val or max_val:
+ if not min_val:
+ min_val='?'
+ if not max_val:
+ max_val='?'
+ max_min_combined+='%s > %s ' % (min_val, max_val)
+ if increment:
+ max_min_combined+='(%s)' % increment
+
if long_desc is not '':
long_desc = 'Comment: %s
' % long_desc
if name == code:
name = ""
code='%s' % (code, code)
+
+ if reboot_required:
+ reboot_required='Reboot required: %s
\n' % reboot_required
- result += '| %s | %s %s | %s | %s | %s |
\n' % (code,name, long_desc, min_val,max_val,def_val)
+ scope=''
+ if not len(scope_set)==1 or len(scope_set)==0:
+ scope = param.GetFieldValue("scope") or ''
+ if scope:
+ scope='Module: %s
\n' % scope
+
+
+ enum_codes=param.GetEnumCodes() or '' # Gets numerical values for parameter.
+ enum_output=''
+ # Format codes and their descriptions for display.
+ if enum_codes:
+ enum_output+='Values:'
+ enum_codes=sorted(enum_codes,key=int)
+ for item in enum_codes:
+ enum_output+='\n- %s: %s
\n' % (item, param.GetEnumValue(item))
+ enum_output+='
\n'
+
+
+ bitmask_list=param.GetBitmaskList() #Gets bitmask values for parameter
+ bitmask_output=''
+ #Format bitmask values
+ if bitmask_list:
+ bitmask_output+='Bitmask:'
+ for bit in bitmask_list:
+ bit_text = param.GetBitmaskBit(bit)
+ bitmask_output+=' - %s: %s
\n' % (bit, bit_text)
+ bitmask_output+='
\n'
+
+
+ result += '\n | %s (%s) | \n %s %s %s %s %s %s | \n %s | \n %s | \n %s | \n
\n' % (code,type,name, long_desc, enum_output, bitmask_output, reboot_required, scope, max_min_combined,def_val,unit)
#Close the table.
result += '
\n\n'