Skip to content
Snippets Groups Projects
Commit e8da1e88 authored by Tom Tiltmann's avatar Tom Tiltmann
Browse files

readme updated

parent a06bd11d
Branches
No related tags found
No related merge requests found
# SerialTable (thk_serialTable) # SerialTable (thk_serialTable)
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.
```txt ```txt
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+ +----------+---------------+-----+----------+----------+---------------+----------+--------------------+
|Vorname |Nachname |Alter|Stadt |Beruf |Unternehmen |Hobby |Bemerkung | |Vorname |Nachname |Alter|Stadt |Beruf |Unternehmen |Hobby |Bemerkung |
...@@ -15,32 +15,16 @@ Die `SerialTable`-Klasse bietet eine komfortable Möglichkeit, tabellarische Dat ...@@ -15,32 +15,16 @@ Die `SerialTable`-Klasse bietet eine komfortable Möglichkeit, tabellarische Dat
|David |Tennant |40 |München |Schauspiel|Freiberufler |Lesen |Doktor gewesen | |David |Tennant |40 |München |Schauspiel|Freiberufler |Lesen |Doktor gewesen |
| | | | |er | | | | | | | | |er | | | |
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+ +----------+---------------+-----+----------+----------+---------------+----------+--------------------+
|Emma |Watson |33 |Frankfurt |Schauspiel|Independent |Yoga |Bekannt aus Filmen |
| | | | |erin | | | |
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+
|Frank |Herbert |45 |Stuttgart |Autor |Ein Verlag |Schreiben |Bücher geschrieben |
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+
|Grace |Hopper |50 |Berlin |Programmie|Tech Corp |Informatik|Pionierin |
| | | | |rerin | | | |
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+
|Hugo |Strange |60 |Leipzig |Psychiater|Gesundheits Gmb|Philosophi|Ruhestand |
| | | | | |H |e | |
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+
|Irene |Adler |29 |Dresden |Detektivin|Privat |Abenteuer |Scharfsinnig |
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+
|John |Doe |49 |Bremen |Buchhalter|Kontorechner |Radfahren |Gewissenhaft |
+----------+---------------+-----+----------+----------+---------------+----------+--------------------+
``` ```
## Hauptfunktionen ## Hauptfunktionen
- **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`.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment