aboutsummaryrefslogtreecommitdiff
path: root/Tools/px4params/dokuwikiout.py
blob: c5cf65ea6084f2746be405e4ebe7dbe435226ef4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import output
from xml.sax.saxutils import escape

class DokuWikiOutput(output.Output):
    def Generate(self, groups):
        pre_text = """<?xml version='1.0'?>
            <methodCall>
              <methodName>wiki.putPage</methodName>
                  <params>
              <param> 
                <value>
                  <string>:firmware:parameters</string>
                </value>
              </param> 
                  <param> 
                <value>
                  <string>"""
        result = "====== Parameter Reference ======\nThis list is auto-generated every few minutes and contains the most recent parameter names and default values."
        for group in groups:
            result += "==== %s ====\n\n" % group.GetName()
            result += "|< 100% 20% 20% 10% 10% 10% 30%>|\n"
            result += "^ Name            ^ Description    ^ Min    ^ Max    ^ Default   ^ Comment    ^\n"
            for param in group.GetParams():
                code = param.GetFieldValue("code")
                name = param.GetFieldValue("short_desc")
                name = name.replace("\n", "")
                result += "| %s   | %s  " % (code, name)
                min_val = param.GetFieldValue("min")
                if min_val is not None:
                    result += " | %s  " % min_val
                else:
                    result += " | "
                max_val = param.GetFieldValue("max")
                if max_val is not None:
                    result += " | %s  " % max_val
                else:
                    result += " | "
                def_val = param.GetFieldValue("default")
                if def_val is not None:
                    result += "| %s  " % def_val
                else:
                    result += " | "
                long_desc = param.GetFieldValue("long_desc")
                if long_desc is not None:
                    long_desc = long_desc.replace("\n", "")
                    result += "| %s  " % long_desc
                else:
                    result += " | "
                result += " |\n"
            result += "\n"
        post_text = """</string>
        </value>
      </param> 
           <param> 
        <value>
            <name>sum</name>
            <string>Updated parameters automagically from code.</string>
        </value>
      </param> 
    </params> 
    </methodCall>"""
        return pre_text + escape(result) + post_text