Skip to content

Commit

Permalink
params: make --compress generic, merge xml+json build targets
Browse files Browse the repository at this point in the history
  • Loading branch information
bkueng committed Jul 31, 2020
1 parent a6d7a5b commit 6349aea
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 41 deletions.
31 changes: 5 additions & 26 deletions src/lib/parameters/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,32 +87,12 @@ add_custom_command(OUTPUT ${generated_serial_params_file}
)

set(parameters_xml ${PX4_BINARY_DIR}/parameters.xml)
set(parameters_json ${PX4_BINARY_DIR}/parameters.json)
file(GLOB_RECURSE param_src_files ${PX4_SOURCE_DIR}/src/*params.c)
add_custom_command(OUTPUT ${parameters_xml}
add_custom_command(OUTPUT ${parameters_xml} ${parameters_json}
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/px_process_params.py
--src-path ${module_list} ${generated_params_dir}
--xml ${parameters_xml}
--inject-xml ${CMAKE_CURRENT_SOURCE_DIR}/parameters_injected.xml
--overrides ${PARAM_DEFAULT_OVERRIDES}
--board ${PX4_BOARD}
#--verbose
DEPENDS
${param_src_files}
${generated_serial_params_file}
parameters_injected.xml
px4params/srcparser.py
px4params/srcscanner.py
px4params/xmlout.py
px_process_params.py
parameters_injected.xml
COMMENT "Generating parameters.xml"
)
add_custom_target(parameters_xml DEPENDS ${parameters_xml})

set(parameters_json ${PX4_BINARY_DIR}/parameters.json)
add_custom_command(OUTPUT ${parameters_json}
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/px_process_params.py
--src-path ${module_list} ${generated_params_dir}
--json ${parameters_json}
--compress
--inject-xml ${CMAKE_CURRENT_SOURCE_DIR}/parameters_injected.xml
Expand All @@ -125,21 +105,20 @@ add_custom_command(OUTPUT ${parameters_json}
parameters_injected.xml
px4params/srcparser.py
px4params/srcscanner.py
px4params/xmlout.py
px4params/jsonout.py
px4params/xmlout.py
px_process_params.py
parameters_injected.xml
COMMENT "Generating parameters.json"
COMMENT "Generating parameters.xml"
)
add_custom_target(parameters_json DEPENDS ${parameters_json})
add_custom_target(parameters_xml DEPENDS ${parameters_xml})

# generate px4_parameters.c and px4_parameters{,_public}.h
add_custom_command(OUTPUT px4_parameters.c px4_parameters.h px4_parameters_public.h
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/px_generate_params.py
--xml ${parameters_xml} --dest ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS
${PX4_BINARY_DIR}/parameters.xml
${PX4_BINARY_DIR}/parameters.json
px_generate_params.py
templates/px4_parameters.c.jinja
templates/px4_parameters.h.jinja
Expand Down
8 changes: 0 additions & 8 deletions src/lib/parameters/px4params/jsonout.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from xml.sax.saxutils import escape
import codecs
import json
import gzip #to create .gz file of json
import sys


Expand Down Expand Up @@ -107,13 +106,6 @@ def __init__(self, groups, board, inject_xml_file_name):
self.output = json.dumps(all_json,indent=2)


def SaveCompressed(self, filename):
#create gz compressed version
gz_filename=filename+'.gz'
with gzip.open(gz_filename, 'wt') as f:
f.write(self.output)


def Save(self, filename):
with codecs.open(filename, 'w', 'utf-8') as f:
f.write(self.output)
Expand Down
31 changes: 24 additions & 7 deletions src/lib/parameters/px_process_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,20 @@
import argparse
from px4params import srcscanner, srcparser, injectxmlparams, xmlout, markdownout, jsonout

import gzip #to create .gz file
import re
import json
import codecs

def SaveCompressed(filename):
#create gz compressed version
gz_filename=filename+'.gz'
with gzip.open(gz_filename, 'wt') as f:
with open(filename, 'r') as content_file:
f.write(content_file.read())



def main():
# Parse command line arguments
parser = argparse.ArgumentParser(description="Process parameter documentation.")
Expand Down Expand Up @@ -95,7 +105,7 @@ def main():
help="verbose output")
parser.add_argument('-c', '--compress',
action='store_true',
help="compress parameter file (if supported by type)")
help="compress parameter file")
parser.add_argument("-o", "--overrides",
default="{}",
metavar="OVERRIDES",
Expand Down Expand Up @@ -143,19 +153,23 @@ def main():
param.default = val
print("OVERRIDING {:s} to {:s}!!!!!".format(name, val))

output_files = []

# Output to XML file
if args.xml:
if args.verbose:
print("Creating XML file " + args.xml)
out = xmlout.XMLOutput(param_groups, args.board)
out.Save(args.xml)
output_files.append(args.xml)

# Output to Markdown/HTML tables
if args.markdown:
out = markdownout.MarkdownTablesOutput(param_groups)
if args.markdown:
if args.verbose:
print("Creating markdown file " + args.markdown)
out.Save(args.markdown)
out = markdownout.MarkdownTablesOutput(param_groups)
out.Save(args.markdown)
output_files.append(args.markdown)

# Output to JSON file
if args.json:
Expand All @@ -165,10 +179,13 @@ def main():
out = jsonout.JsonOutput(param_groups, args.board,
os.path.join(cur_dir, args.inject_xml))
out.Save(args.json)
if args.compress:
output_files.append(args.json)

if args.compress:
for f in output_files:
if args.verbose:
print("Save compressed Json file " + args.json)
out.SaveCompressed(args.json)
print("Compressing file " + f)
SaveCompressed(f)


if __name__ == "__main__":
Expand Down

0 comments on commit 6349aea

Please sign in to comment.