aboutsummaryrefslogtreecommitdiff
path: root/Tools/px4params
diff options
context:
space:
mode:
authorStefan Rado <px4@sradonia.net>2014-02-18 22:34:52 +0100
committerStefan Rado <px4@sradonia.net>2014-02-18 22:34:52 +0100
commit8d41155fb66ce04834141151c4a0fa54de0b4b31 (patch)
tree27cf4a86137c793c826c280419d388ec01512569 /Tools/px4params
parent55e66f5ad1fecb02bcb9782265303e20756b5cb9 (diff)
downloadpx4-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/.gitignore4
-rw-r--r--Tools/px4params/README.md10
-rw-r--r--Tools/px4params/__init__.py1
-rw-r--r--Tools/px4params/dokuwikiout.py (renamed from Tools/px4params/output_dokuwiki_tables.py)27
-rw-r--r--Tools/px4params/dokuwikirpc.py16
-rw-r--r--Tools/px4params/output_dokuwiki_listings.py31
-rwxr-xr-xTools/px4params/px_process_params.py67
-rw-r--r--Tools/px4params/xmlout.py (renamed from Tools/px4params/output_xml.py)0
-rw-r--r--Tools/px4params/xmlrpc.sh5
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"