diff options
author | Stefan Rado <px4@sradonia.net> | 2014-02-18 22:34:52 +0100 |
---|---|---|
committer | Stefan Rado <px4@sradonia.net> | 2014-02-18 22:34:52 +0100 |
commit | 8d41155fb66ce04834141151c4a0fa54de0b4b31 (patch) | |
tree | 27cf4a86137c793c826c280419d388ec01512569 /Tools/px4params | |
parent | 55e66f5ad1fecb02bcb9782265303e20756b5cb9 (diff) | |
download | px4-firmware-8d41155fb66ce04834141151c4a0fa54de0b4b31.tar.gz px4-firmware-8d41155fb66ce04834141151c4a0fa54de0b4b31.tar.bz2 px4-firmware-8d41155fb66ce04834141151c4a0fa54de0b4b31.zip |
Rework px_process_params.py into a fully featured program.
Diffstat (limited to 'Tools/px4params')
-rw-r--r-- | Tools/px4params/.gitignore | 4 | ||||
-rw-r--r-- | Tools/px4params/README.md | 10 | ||||
-rw-r--r-- | Tools/px4params/__init__.py | 1 | ||||
-rw-r--r-- | Tools/px4params/dokuwikiout.py (renamed from Tools/px4params/output_dokuwiki_tables.py) | 27 | ||||
-rw-r--r-- | Tools/px4params/dokuwikirpc.py | 16 | ||||
-rw-r--r-- | Tools/px4params/output_dokuwiki_listings.py | 31 | ||||
-rwxr-xr-x | Tools/px4params/px_process_params.py | 67 | ||||
-rw-r--r-- | Tools/px4params/xmlout.py (renamed from Tools/px4params/output_xml.py) | 0 | ||||
-rw-r--r-- | Tools/px4params/xmlrpc.sh | 5 |
9 files changed, 18 insertions, 143 deletions
diff --git a/Tools/px4params/.gitignore b/Tools/px4params/.gitignore deleted file mode 100644 index d78b71a6e..000000000 --- a/Tools/px4params/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -parameters.wiki -parameters.xml -parameters.wikirpc.xml -cookies.txt
\ No newline at end of file diff --git a/Tools/px4params/README.md b/Tools/px4params/README.md index a23b44799..50dcd2e29 100644 --- a/Tools/px4params/README.md +++ b/Tools/px4params/README.md @@ -1,9 +1 @@ -h1. PX4 Parameters Processor - -It's designed to scan PX4 source codes, find declarations of tunable parameters, -and generate the list in various formats. - -Currently supported formats are: - -* XML for the parametric UI generator -* Human-readable description in DokuWiki format +This folder contains a python library used by px_process_params.py diff --git a/Tools/px4params/__init__.py b/Tools/px4params/__init__.py new file mode 100644 index 000000000..3a9f1e2c6 --- /dev/null +++ b/Tools/px4params/__init__.py @@ -0,0 +1 @@ +__all__ = ["srcscanner", "srcparser", "xmlout", "dokuwikiout", "dokuwikirpc"]
\ No newline at end of file diff --git a/Tools/px4params/output_dokuwiki_tables.py b/Tools/px4params/dokuwikiout.py index aa04304df..705b0bb5f 100644 --- a/Tools/px4params/output_dokuwiki_tables.py +++ b/Tools/px4params/dokuwikiout.py @@ -47,30 +47,3 @@ class DokuWikiTablesOutput(): def Save(self, filename): with codecs.open(filename, 'w', 'utf-8') as f: f.write(self.output) - - def SaveRpc(self, filename): - with codecs.open(filename, 'w', 'utf-8') as f: - f.write("""<?xml version='1.0'?> -<methodCall> - <methodName>wiki.putPage</methodName> - <params> - <param> - <value> - <string>:firmware:parameters</string> - </value> - </param> - <param> - <value> - <string>""") - f.write(escape(self.output)) - f.write("""</string> - </value> - </param> - <param> - <value> - <name>sum</name> - <string>Updated parameters automagically from code.</string> - </value> - </param> - </params> -</methodCall>""") diff --git a/Tools/px4params/dokuwikirpc.py b/Tools/px4params/dokuwikirpc.py new file mode 100644 index 000000000..407d306fd --- /dev/null +++ b/Tools/px4params/dokuwikirpc.py @@ -0,0 +1,16 @@ +try: + import xmlrpclib +except ImportError: + import xmlrpc.client as xmlrpclib + +# See https://www.dokuwiki.org/devel:xmlrpc for a list of available functions! +# Usage example: +# xmlrpc = dokuwikirpc.get_xmlrpc(url, username, password) +# print(xmlrpc.dokuwiki.getVersion()) + +def get_xmlrpc(url, username, password): + #proto, url = url.split("://") + #url = proto + "://" + username + ":" + password + "@" + url + "/lib/exe/xmlrpc.php" + url += "/lib/exe/xmlrpc.php?u=" + username + "&p=" + password + + return xmlrpclib.ServerProxy(url) diff --git a/Tools/px4params/output_dokuwiki_listings.py b/Tools/px4params/output_dokuwiki_listings.py deleted file mode 100644 index 83c50ae15..000000000 --- a/Tools/px4params/output_dokuwiki_listings.py +++ /dev/null @@ -1,31 +0,0 @@ -import codecs - -class DokuWikiListingsOutput(): - def __init__(self, groups): - result = "" - for group in groups: - result += "==== %s ====\n\n" % group.GetName() - for param in group.GetParams(): - code = param.GetFieldValue("code") - name = param.GetFieldValue("short_desc") - if code != name: - name = "%s (%s)" % (name, code) - result += "=== %s ===\n\n" % name - long_desc = param.GetFieldValue("long_desc") - if long_desc is not None: - result += "%s\n\n" % long_desc - min_val = param.GetFieldValue("min") - if min_val is not None: - result += "* Minimal value: %s\n" % min_val - max_val = param.GetFieldValue("max") - if max_val is not None: - result += "* Maximal value: %s\n" % max_val - def_val = param.GetFieldValue("default") - if def_val is not None: - result += "* Default value: %s\n" % def_val - result += "\n" - self.output = result - - def Save(self, filename): - with codecs.open(filename, 'w', 'utf-8') as f: - f.write(self.output) diff --git a/Tools/px4params/px_process_params.py b/Tools/px4params/px_process_params.py deleted file mode 100755 index 8503a2f4c..000000000 --- a/Tools/px4params/px_process_params.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python -############################################################################ -# -# Copyright (C) 2013 PX4 Development Team. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name PX4 nor the names of its contributors may be -# used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################ - -# -# PX4 paramers processor (main executable file) -# -# It scans src/ subdirectory of the project, collects all parameters -# definitions, and outputs list of parameters in XML and DokuWiki formats. -# - -import srcscanner -import srcparser -import output_xml -import output_dokuwiki_tables -import output_dokuwiki_listings - -# Initialize parser -parser = srcparser.SourceParser() - -# Scan directories, and parse the files -scanner = srcscanner.SourceScanner() -scanner.ScanDir("../../src", parser) -groups = parser.GetParamGroups() - -# Output into XML -out = output_xml.XMLOutput(groups) -out.Save("parameters.xml") - -# Output to DokuWiki listings -#out = output_dokuwiki_listings.DokuWikiListingsOutput(groups) -#out.Save("parameters.wiki") - -# Output to DokuWiki tables -out = output_dokuwiki_tables.DokuWikiTablesOutput(groups) -out.Save("parameters.wiki") -out.SaveRpc("parameters.wikirpc.xml") diff --git a/Tools/px4params/output_xml.py b/Tools/px4params/xmlout.py index e845cd1b1..e845cd1b1 100644 --- a/Tools/px4params/output_xml.py +++ b/Tools/px4params/xmlout.py diff --git a/Tools/px4params/xmlrpc.sh b/Tools/px4params/xmlrpc.sh deleted file mode 100644 index efd177f46..000000000 --- a/Tools/px4params/xmlrpc.sh +++ /dev/null @@ -1,5 +0,0 @@ -python px_process_params.py - -rm cookies.txt -curl --cookie cookies.txt --cookie-jar cookies.txt --user-agent Mozilla/4.0 --data "u=$XMLRPCUSER&p=$XMLRPCPASS" https://pixhawk.org/start?do=login -curl -k --cookie cookies.txt -H "Content-Type: application/xml" -X POST --data-binary @parameters.wikirpc.xml "https://pixhawk.org/lib/exe/xmlrpc.php" |