<p>Das gesamte Softwareprojekt besteht aus zwei Teilen: <br/>
Die <em><b>Firmware</b></em> ist die Software auf dem Mikrocontroller (MCU) des Board 15. Der Mikrocontroller steuert die Peripherie (ADCs, DACs, ...) über einen SPI-BUS. <br/>
Der zweite Teil von <aclass="el"href="classB15F.html">B15F</a> ist die <em><b>Steuersoftware</b></em>, die auf dem PC ausgeführt wird. Diese sendet über eine USART-Schnittstelle (RS-232) Befehle an den Mikrocontroller. <br/>
Die Steuersoftware besitzt ein <em>CLI</em> (command line interface) mit einer Benutzerschnittstelle für die einfache Fernsteuerung des <aclass="el"href="classB15F.html">B15F</a>. <br/>
Außerdem wird eine Bibliothek (<em>b15fdrv</em>) installiert, die eine einfache Entwicklung kleiner Steuerprogramme erlaubt.</p>
<p>Verwendet wird die Bibliothekt <em>b15fdrv</em>. Die wichtigste Klasse für die Steuerung des Board 15 ist <ahref="https://devfix.github.io/b15f/html/classB15F.html">B15F</a>. <br/>
<p>In dem Verzeichnis <ahref="https://github.com/devfix/b15f/tree/master/control/examples">b15f/control/examples</a> sind einige Beispiele für die Verwendung einzelner <aclass="el"href="classB15F.html">B15F</a> Funktionen. <br/>
Zu jedem Beispiel gehört eine <em>main.cpp</em> mit dem Quellcode und eine <em>Makefile</em>-Datei. Durch das Makefile wird beim Kompilieren und Linken die Bibliothek <em>b15fdrv</em> automatisch einbezogen. <br/>
Das Beispiel muss durch Sie also nur mit <b>make</b> kompiliert und mit .**/main.elf** gestartet werden.</p>
Falls noch keine existiert, wird automatisch eine erzeugt und Verbindung zum Board hergestellt. <br/>
Ab jetzt können auf dem Object <code>drv</code> verschiedene Methoden angewand werden, siehe <ahref="https://devfix.github.io/b15f/html/classB15F.html">B15F</a>. <br/>
</p><divclass="fragment"><divclass="line"> {C++}</div><divclass="line">PlottyFile pf; </div><divclass="line">pf.setUnitX("V"); </div><divclass="line">pf.setUnitY("V"); </div><divclass="line">pf.setUnitPara("V"); </div><divclass="line">pf.setDescX("U_{OUT}"); // Markdown wird unterstuetzt </div><divclass="line">pf.setDescY("U_{IN}"); </div><divclass="line">pf.setDescPara(""); </div><divclass="line">pf.setRefX(5); </div><divclass="line">pf.setRefY(5); </div><divclass="line">pf.setParaFirstCurve(0); </div><divclass="line">pf.setParaStepWidth(0);</div></div><!-- fragment --><p> Messpunkte können anschließend hinzugefügt werden. <br/>
Dabei gehören Punkte mit dem gleichen Index für <code>curve</code> (<em>uint8_t</em>) zur selben Kurve und erhalten durch Plotty automatisch die gleiche Farbe. <br/>
</p><divclass="fragment"><divclass="line"> {C++}</div><divclass="line">pf.addDot(Dot(x, y, curve));</div></div><!-- fragment --><p><em>Wichtig</em>: Die Werte für <code>x</code> und <code>y</code> sind <em>uint16_t</em>, also keine Gleitkommazahlen. Stattdessen sind sie auf RefX und RefY bezogen. </p>