Browse Source

Tools: param_parse: add --sitl to emit only SIM_ parameters

zr-v5.1
Peter Barker 4 years ago committed by Peter Barker
parent
commit
b107740542
  1. 4
      Tools/autotest/param_metadata/emit.py
  2. 32
      Tools/autotest/param_metadata/param_parse.py
  3. 11
      Tools/autotest/param_metadata/rstemit.py

4
Tools/autotest/param_metadata/emit.py

@ -7,8 +7,8 @@ import re @@ -7,8 +7,8 @@ import re
class Emit:
def __init__(self, *args, **kwargs):
pass
def __init__(self, sitl=False):
self.sitl = sitl
prog_values_field = re.compile(r"\s*(-?\w+:\w+)+,*")

32
Tools/autotest/param_metadata/param_parse.py

@ -29,6 +29,12 @@ parser.add_argument("--format", @@ -29,6 +29,12 @@ parser.add_argument("--format",
default='all',
choices=['all', 'html', 'rst', 'wiki', 'xml', 'json', 'edn', 'md', 'xml_mp'],
help="what output format to use")
parser.add_argument("--sitl",
dest='emit_sitl',
action='store_true',
default=False,
help="true to only emit sitl parameters, false to not emit sitl parameters")
args = parser.parse_args()
@ -118,7 +124,11 @@ for vehicle in vehicles: @@ -118,7 +124,11 @@ for vehicle in vehicles:
if not any(lib.name == parsed_l.name for parsed_l in libraries):
libraries.append(lib)
param_matches = prog_param.findall(p_text)
param_matches = []
if not args.emit_sitl:
param_matches = prog_param.findall(p_text)
for param_match in param_matches:
(only_vehicles, param_name, field_text) = (param_match[0],
param_match[1],
@ -152,11 +162,17 @@ for vehicle in vehicles: @@ -152,11 +162,17 @@ for vehicle in vehicles:
debug("Found %u documented libraries" % len(libraries))
if args.emit_sitl:
libraries = filter(lambda x : x.name == 'SIM_', libraries)
else:
libraries = filter(lambda x : x.name != 'SIM_', libraries)
libraries = list(libraries)
alllibs = libraries[:]
vehicle = vehicles[0]
def process_library(vehicle, library, pathprefix=None):
'''process one library'''
paths = library.Path.split(',')
@ -424,11 +440,17 @@ for emitter_name in all_emitters.keys(): @@ -424,11 +440,17 @@ for emitter_name in all_emitters.keys():
if args.output_format == 'all' or args.output_format == emitter_name:
emitters_to_use.append(emitter_name)
if args.emit_sitl:
# only generate rst for SITL for now:
emitters_to_use = ['rst']
# actually invoke each emiiter:
for emitter_name in emitters_to_use:
emit = all_emitters[emitter_name]()
for vehicle in vehicles:
emit.emit(vehicle)
emit = all_emitters[emitter_name](sitl=args.emit_sitl)
if not args.emit_sitl:
for vehicle in vehicles:
emit.emit(vehicle)
emit.start_libraries()

11
Tools/autotest/param_metadata/rstemit.py

@ -12,6 +12,8 @@ except Exception: @@ -12,6 +12,8 @@ except Exception:
# Emit docs in a RST format
class RSTEmit(Emit):
def blurb(self):
if self.sitl:
return """SITL parameters"""
return """This is a complete list of the parameters which can be set (e.g. via the MAVLink protocol) to control vehicle behaviour. They are stored in persistent storage on the vehicle.
This list is automatically generated from the latest ardupilot source code, and so may contain parameters which are not yet in the stable released versions of the code.
@ -26,6 +28,11 @@ This list is automatically generated from the latest ardupilot source code, and @@ -26,6 +28,11 @@ This list is automatically generated from the latest ardupilot source code, and
self.f = open(output_fname, mode='w')
self.spacer = re.compile("^", re.MULTILINE)
self.rstescape = re.compile("([^a-zA-Z0-9\n ])")
if self.sitl:
parameterlisttype = "SITL Parameter List"
else:
parameterlisttype = "Complete Parameter List"
parameterlisttype += "\n" + "=" * len(parameterlisttype)
self.preamble = """.. Dynamically generated list of documented parameters
.. This page was generated using {toolname}
@ -34,12 +41,12 @@ This list is automatically generated from the latest ardupilot source code, and @@ -34,12 +41,12 @@ This list is automatically generated from the latest ardupilot source code, and
.. _parameters:
Complete Parameter List
=======================
{parameterlisttype}
{blurb}
""".format(blurb=self.escape(self.blurb()),
parameterlisttype=parameterlisttype,
toolname=self.escape(self.toolname()))
self.t = ''

Loading…
Cancel
Save