diff --git a/README.md b/README.md index fee8ccc2f253839d067593c3b20078e0831e62d0..8dca8acac25e142940608c42d7f1345db5de6ffe 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 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 +----------+---------------+-----+----------+----------+---------------+----------+--------------------+ |Vorname |Nachname |Alter|Stadt |Beruf |Unternehmen |Hobby |Bemerkung | @@ -15,32 +15,16 @@ Die `SerialTable`-Klasse bietet eine komfortable Möglichkeit, tabellarische Dat |David |Tennant |40 |München |Schauspiel|Freiberufler |Lesen |Doktor gewesen | | | | | |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 - -- **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. +- **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 -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 @@ -89,10 +73,15 @@ Methoden - `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 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 - `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 splitStringByLength(const char input, int L, char output)`: Teilt einen String in Segmente auf, die die angegebene Länge nicht überschreiten. \ No newline at end of file +- `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