Die `SerialTable`-Klasse bietet eine komfortable Möglichkeit, tabellarische Daten über die serielle Schnittstelle auf einem Arduino-Gerät auszugeben. Sie unterstützt die Darstellung von mehrbyteigen UTF-8-Zeichen, wie z.B. Umlauten, und bietet Funktionen, um Textangaben innerhalb definierter Spaltenbreiten zu verwalten.
Die `SerialTable`-Klasse bietet eine komfortable Möglichkeit, tabellarische Daten über die serielle Schnittstelle von einem Arduino-Gerät auf einem seriellen Terminal auszugeben. Sie unterstützt die Darstellung von mehrbyteigen UTF-8-Zeichen, wie z.B. Umlauten, und bietet Funktionen, um Textangaben innerhalb definierter Spaltenbreiten zu verwalten.
-**UTF-8 Unterstützung:** Die Klasse verarbeitet UTF-8-kodierte Zeichen korrekt und passt die Spaltenbreite entsprechend an, sodass mehrbyteige Zeichen wie Umlaute nicht den Zeilenumbruch oder die Formatierung stören.
-**Spaltenbreitenmanagement:** Texte können automatisch abgeschnitten oder umgebrochen werden, um die definierten Spaltenbreiten beizubehalten.
-**Tabellarische Darstellung:** Ausgabe von Kopfzeilen und Datenzeilen in einem leicht lesbaren, tabellarisierten Format.
-**Tabellarische Darstellung:** Ausgabe von Kopfzeilen und Datenzeilen in einem leicht lesbaren, tabellarisierten Format.
-**Spaltenbreitenmanagement:** Texte können automatisch abgeschnitten oder umgebrochen werden, um die definierten Spaltenbreiten beizubehalten.
-**UTF-8 Unterstützung:** Die Klasse verarbeitet UTF-8-kodierte Zeichen korrekt und passt die Spaltenbreite entsprechend an, sodass mehrbyteige Zeichen wie Umlaute nicht den Zeilenumbruch oder die Formatierung stören.
## Installation
## Installation
Stellen Sie sicher, dass die Bibliothek innerhalb der Arduino-Umgebung verfügbar ist. Fügen Sie den Inhalt von `SerialTable` in einer `SerialTable.h` Datei ein, und binden Sie sie in Ihr Arduino-Projekt ein.
Stelle sicher, dass die Bibliothek innerhalb der Arduino-Umgebung verfügbar ist und inkludiere die Datei `SerialTable.h`.
## Anwendungsbeispiel
## Anwendungsbeispiel
...
@@ -89,6 +73,7 @@ Methoden
...
@@ -89,6 +73,7 @@ Methoden
-`void printHeader()`: Gibt den Header der Tabelle über die serielle Schnittstelle aus.
-`void printHeader()`: Gibt den Header der Tabelle über die serielle Schnittstelle aus.
-`void printRow(char trow)`: Gibt eine Zeile mit Daten über die serielle Schnittstelle aus. `trow` ist ein Array von C-Strings.
-`void printRow(char trow)`: Gibt eine Zeile mit Daten über die serielle Schnittstelle aus. `trow` ist ein Array von C-Strings.
-`void setTruncateText(bool value)`: Legt fest, ob der Text in einer Spalte abgeschnitten werden soll, wenn er die definierte Breite überschreitet.
-`void setTruncateText(bool value)`: Legt fest, ob der Text in einer Spalte abgeschnitten werden soll, wenn er die definierte Breite überschreitet.
-`void setReplaceUmlauts(bool value)`: Legt fest, ob die eventuell vorhandenen Umlaute im Text, in den Zellen durch entsprechende Ersatzbuchstaben ersetzt werden sollen.
Utility-Methoden
Utility-Methoden
...
@@ -96,3 +81,7 @@ Utility-Methoden
...
@@ -96,3 +81,7 @@ Utility-Methoden
-`static int displayLength(const char *text)`: Bestimmt die tatsächliche Anzeigelänge eines Strings, der UTF-8-kodierte Zeichen enthält.
-`static int displayLength(const char *text)`: Bestimmt die tatsächliche Anzeigelänge eines Strings, der UTF-8-kodierte Zeichen enthält.
-`static void replaceUmlauts(char *text)`: Ersetzt Umlaute im Text durch ASCII-ähnliche Zeichenfolgen.
-`static void replaceUmlauts(char *text)`: Ersetzt Umlaute im Text durch ASCII-ähnliche Zeichenfolgen.
-`static void splitStringByLength(const char input, int L, char output)`: Teilt einen String in Segmente auf, die die angegebene Länge nicht überschreiten.
-`static void splitStringByLength(const char input, int L, char output)`: Teilt einen String in Segmente auf, die die angegebene Länge nicht überschreiten.
Unit Testing
Die Methoden wurden zusammen mit Unit tests entwickelt. Siehe `UnitTests.h`.