aboutsummaryrefslogtreecommitdiff
path: root/Tools/px4params/output_dokuwiki_tables.py
blob: aa04304df7ae260e72e098f25a56fa6165c39735 (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from xml.sax.saxutils import escape
import codecs

class DokuWikiTablesOutput():
    def __init__(self, groups):
        result = "====== Parameter Reference ======\nThis list is auto-generated every few minutes and contains the most recent parameter names and default values.\n\n"
        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")
                min_val = param.GetFieldValue("min")
                max_val = param.GetFieldValue("max")
                def_val = param.GetFieldValue("default")
                long_desc = param.GetFieldValue("long_desc")

                name = name.replace("\n", " ")
                result += "| %s | %s |" % (code, name)

                if min_val is not None:
                    result += "  %s |" % min_val
                else:
                    result += " |"

                if max_val is not None:
                    result += "  %s |" % max_val
                else:
                    result += " |"

                if def_val is not None:
                    result += "  %s |" % def_val
                else:
                    result += " |"

                if long_desc is not None:
                    long_desc = long_desc.replace("\n", " ")
                    result += " %s |" % long_desc
                else:
                    result += " |"

                result += "\n"
            result += "\n"
        self.output = result;

    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>""")