2019-06-06 10:12:21 +02:00
# B15F Benutzerhandbuch
*Hinweis*: Terminal-Befehle sind **fett** gedruckt
## Installation
### 1. Abhängigkeiten installieren
(a) **sudo apt-get update**
2019-06-06 10:50:18 +02:00
(b) **sudo apt-get install git avr-libc avrdude libncurses5-dev g++**
2019-06-06 10:12:21 +02:00
### 2. Das Repository klonen
2019-06-07 09:58:58 +02:00
(a) **cd /home/famulus/**
2019-06-06 10:12:21 +02:00
(b) **git clone "https://github.com/devfix/b15f.git"**
### 3. Die Firmware installieren
2019-06-07 09:58:58 +02:00
(a) **cd "/home/famulus/b15f/firmware"**
2019-06-06 11:22:00 +02:00
2019-06-06 10:50:18 +02:00
(b) Passen Sie in der Datei *Makefile* die Option "MCU = ..." an die MCU des vorliegenden Boards an
(*atmega1284* und *atmega1284p* sind nicht identisch!)
2019-06-06 11:22:00 +02:00
2019-06-06 10:50:18 +02:00
(c) **make**
2019-06-06 10:12:21 +02:00
Wenn udev richtig konfiguriert wurde:
2019-06-06 10:50:18 +02:00
(d I) **make upload**
2019-06-06 10:12:21 +02:00
Sonst:
2019-06-06 10:50:18 +02:00
(d II) **sudo make upload**
2019-06-06 10:12:21 +02:00
### 4. Die Steuersoftware (Bibliothek & CLI) installieren
2019-06-07 09:58:58 +02:00
(a) **cd "/home/famulus/b15f/control/src"**
2019-06-06 10:12:21 +02:00
(b) **make**
2019-06-06 10:50:18 +02:00
(Die Warnungen durch doxygen können ignoriert werden.)
2019-06-06 10:12:21 +02:00
(c) **sudo make install**
2019-06-07 09:58:58 +02:00
## Aktualisierung
(a) **cd /home/famulus/b15f/**
(b) **git pull --prune**
(c) **cd "/home/famulus/b15f/firmware"**
(d) **make clean**
(e) **cd "/home/famulus/b15f/control/src"**
(f) **make clean**
(g) Installation ab Schritt 3 wiederholen
2019-06-06 11:22:00 +02:00
## Das CommandLineInterface (CLI) benutzen
(a) Öffnen Sie ein Terminal und maximieren Sie das Fenster
(b) Start des CLI erfolgt durch **b15fcli**
2019-06-07 09:58:58 +02:00
(c) Die Navigation erfolgt durch < Tab> , die Pfeiltasten und < Enter> oder die Maus
2019-06-06 11:22:00 +02:00
(d) Mit < Strg + c> kann das Programm sofort verlassen werden
## Eigene Programme mit B15F schreiben
### Grundsätzliches
2019-06-06 12:23:36 +02:00
Die wichtigste Klasse für die Steuerung des Board 15 ist [B15F ](https://devfix.github.io/b15f/html/classB15F.html ).
2019-06-06 11:22:00 +02:00
Dort befindet sich auch eine Übersicht der verfügbaren Befehle.
### Beispiele
In dem Verzeichnis [b15f/control/examples ](https://github.com/devfix/b15f/tree/master/control/examples ) sind einige Beispiele für die Verwendung einzelner B15F Funktionen.
Zu jedem Beispiel gehört eine *main.cpp* mit dem Quellcode und eine *Makefile* -Datei.
2019-06-07 14:27:02 +02:00
Das Beispiel kann mit **make** kompiliert und mit ** \./main.elf** gestartet werden.
2019-06-06 11:22:00 +02:00
### Den B15F Treiber verwenden
Benötigt wird der B15F-Header:
`#include <b15f/b15f.h>`
und der Header für die plottyfile-Generierung, falls mit Kennlinien gearbeitet werden soll:
`#include <b15f/plottyfile.h>`
Für die Interaktion wird eine Referenz auf die aktuelle Treiberinstanz gespeichert:
`B15F& drv = B15F::getInstance();`
Falls noch keine existiert, wird automatisch eine erzeugt und Verbindung zum Board hergestellt.
2019-06-06 12:23:36 +02:00
Ab jetzt können auf dem Object `drv` verschiedene Methoden angewand werden, siehe [B15F ](https://devfix.github.io/b15f/html/classB15F.html ).
2019-06-06 11:22:00 +02:00
### Kennlinien mit plottyfile generieren
2019-06-06 12:23:36 +02:00
Die Beschreibung zu Plottyfile befindet sich [hier ](https://devfix.github.io/b15f/html/classPlottyFile.html ).
2019-06-06 11:22:00 +02:00
Nach dem Include von plottyfile kann ein neues Objekt erzeugt und konfiguriert werden:
```C++
PlottyFile pf;
pf.setUnitX("V");
pf.setUnitY("V");
pf.setUnitPara("V");
2019-06-07 14:27:02 +02:00
pf.setDescX("U_{OUT}"); // Markdown wird unterstuetzt
2019-06-06 11:22:00 +02:00
pf.setDescY("U_{IN}");
pf.setDescPara("");
pf.setRefX(5);
pf.setRefY(5);
pf.setParaFirstCurve(0);
pf.setParaStepWidth(0);
```
Messpunkte können anschließend hinzugefügt werden.
Dabei gehören Punkte mit dem gleichen Index für `curve` (*uint8_t*) zur selben Kurve und erhalten durch Plotty automatisch die gleiche Farbe.
```C++
pf.addDot(Dot(x, y, curve));
```
`x` und `y` sind *uint16_t* , also keine Gleitkommazahlen.