aboutsummaryrefslogtreecommitdiffstats
path: root/python/gui/templates/predistortion.html
blob: 868205419c4d523983f33ae785d9c1877e5a929a (plain)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<!DOCTYPE html>
<html lang="en">

{% include 'head.html' %}

<body>
  {% include 'body-nav.html' %}

  <div class="container-fluid">
    <div class="panel-group">
      <div class="panel panel-default">
        <div class="panel-heading">Status and calibration</div>
        <div class="panel-body">

          <div class="container-fluid">
            <div class="row">
              <div class="col-sm-8">
                <h2>Current DPDCE status</h2>
                <div>
                  <div id="dpdstatus" style="font-weight:bold;">N/A</div>
                  <div class="progress">
                    <div id="dpdprogress" class="progress-bar" role="progressbar" style="width:0%">
                      <span id="dpdprogresstext"></span>
                    </div>
                  </div>
                </div>
                <div class="well well-sm" id="dpdresults">N/A</div>
              </div>
              <div class="col-sm-4">
                <h2>Summary</h2>
                <p>Calibration needs to be done once before the PA model
                can be trained. Every time calibration is changed, the predistortion
                parameters are invalidated!</p>
                <p>Once calibration succeeded and correct RX gain is set, you
                can trigger a capture and model the PA. Usually, several capture
                runs are needed before the model can be trained.</p>
                <p>The capture and model analysis will calculate a new set of
                DPD model data, that you can apply using the Update Predistorter button.</p>
              </div>
            </div>
          </div>

          <button type="button" class="btn btn-sm btn-warning" id="calibratebtn">
            Calibrate</button>
          <button type="button" class="btn btn-sm btn-warning" id="triggerbtn">
            Trigger Capture and PA Modeling</button>
          <button type="button" class="btn btn-sm btn-warning" id="adaptbtn">
            Update Predistorter</button>
          <button type="button" class="btn btn-sm btn-info" id="resetbtn">
            Reset captured data</button>
        </div>
      </div>

      <div class="panel panel-default">
        <div class="panel-heading">Capture Statistics</div>
        <div class="panel-body">
          <img id="dpdcapturestats" />
        </div>
      </div>
      <div class="panel panel-default">
        <div class="panel-heading">AM/AM and AM/PM Model</div>
        <div class="panel-body">
          <div class="container-fluid">
            <div class="row">
              <div class="col-sm-2">
                <p>Model data:</p>
              </div>
              <div class="col-sm-10">
                <pre id="dpdmodeldata"></pre>
              </div>
            </div>
          </div>
          <img id="dpdmodelplot" />
        </div>
      </div>

      <!--
      <div class="panel panel-default">
        <div class="panel-heading">Status</div>
        <div class="panel-body">
          <button type="button" class="btn btn-sm btn-info" id="dpdstatusbutton">
            Update</button>
          <div>Histogram: <span id="histogram">N/A</span></div>
          <div>Capture status
            <span id="capturestatus">N/A</span></div>
          <div>Number of samples captured:
            <span id="capturelength">None</span></div>
          <div>TX median: <span id="tx_median">N/A</span></div>
          <div>RX median: <span id="rx_median">N/A</span></div>
          <div>Point cloud: <img id="dpd_pointcloud" /></div>
        </div>
      </div>
      -->
    </div>
  </div>
</body>
</html>

<!--
   Copyright (C) 2018
   Matthias P. Braendli, matthias.braendli@mpb.li

This file is part of ODR-DabMod.

ODR-DabMod is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

ODR-DabMod is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with ODR-DabMod.  If not, see <http://www.gnu.org/licenses/>.
-->