Immer wieder nach Lösungen zu suchen ist ineffektiv. Deshalb wider des Vergessens: Die Klasse URS::Util implementiert immer wieder benötigte Routinen. Eine laufende Ergänzung ist vorgesehen.
Inhaltsverzeichnis
Version | Anpassungen |
---|---|
1.0 (2019-12-16) | Initiale Version |
1.1 (2019-12-18) | Fehlerkorrekturen |
1.2 (2022-06-28) | - Methoden tail, reverse,
toBin32Digits, toBin16Digits,
toBin8Digits, getCppVersion
hinzugefügt - Instanz UrsUtil (ohne Namespace) als Referenz hinzugefügt. |
Das ZIP-Archiv für Bibliothek UrsUtil zum Download. Die entpackten Dateien ins Verzeichnis <user>\Documents\Arduino\libraries kopieren (siehe Installing Additional Arduino Libraries).
Das Archiv enthält die Bibliotheksdateien
Um nicht in Konflikt mit anderen Bibliotheken zu kommen, wird der Namespace URS verwendet. Will
man sich die regelmäßige Angabe des Namespace sparen (URS::Util.xxx
) kann
man die Anweisung using namespace URS;
dem Programmcode voranstellen:
#include <UrsUtil.h>
using namespace URS;
...
Serial.println(UrsUtil.thousandSeparatorString(1234567));
Zur Verbesserung der Lesbarkeit bei der Ausgabe großer Zahlen ist es sinnvoll Tausender-Trennzeichen
einzufügen. Die Methode thousandSeparatorString() konvertiert eine
Ganzzahl in einen String mit eingefügten Tausender-Trennzeichen. Serial.println(UrsUtil.thousandSeparatorString(1234567));
ergibt den Output "1.234.567". Damit auch negative Zahlen formatiert werden können gibt es auch eine
Variante der Methode für vorzeichenbehaftete Zahlen.
Über die Methode setThousandSeparator() kann das Trennzeichen
festgelegt werden. '\0'
ist als Trennzeichen nicht zulässig.
Methode | Funktion | Anmerkung |
---|---|---|
String thousandSeparatorString(uint32_t n) | Konvertiert eine vorzeichenlose Ganzzahl in einen String mit Tausender-Trennzeichen. | Util.thousandSeparatorString(1234567) -> "1.234.567" |
String thousandSeparatorString(int32_t n) | Konvertiert eine vorzeichenbehaftete Ganzzahl in einen String mit Tausender-Trennzeichen. | Util.thousandSeparatorString(-1234567) -> "-1.234.567" |
void setThousandSeparator(char sep) | Lagt das Trennzeichen fest. | '\0' ist als Trennzeichen nicht zulässig. |
Serial.print() erlaubt zwar die Ausgabe von Hexadezimalzahlen. Die Anzahl auszugebender Stellen kann man jedoch nicht festlegen. Beim Debuggen ist es jedoch sehr nützlich Ausgaben mit immer der gleichen Anzahl an Stellen zu haben. Die Methoden toHexnDigits() konvertiert Ganzzahlen in Hexadezimal-Strings mit gleicher Stellenzahl. Für n sind sie Angaben 2, 4 und 8 möglich.
Methode | Funktion | Anmerkung |
---|---|---|
String toHex2Digits(uint8_t n) | Konvertiert eine Zahl in einen Hexadezimal-String mit 2 Hexadezimalstellen. | Bei Zahlen mit mehr als 8 Bit wird nur das letzte Byte ausgegeben. |
String toHex4Digits(uint16_t n) | Konvertiert eine Zahl in einen Hexadezimal-String mit 4 Hexadezimalstellen. | Bei Zahlen mit mehr als 16 Bit werden nur die letzten beiden Byte ausgegeben. |
String toHex8Digits (uint32_t n, char separator = '\0') |
Konvertiert eine Zahl in einen Hexadezimal-String mit 4 Hexadezimalstellen. Wenn separator != '\0' wird das Zeichen zwischen der 4. und 5. Stelle eingefügt. | UrsUtil.toHex8Digits(0xFFFFFFFF,'.') -> "FFFF.FFFF" |
Die Methoden toBinnDigits() konvertiert Ganzzahlen in Binärzahlen-Strings mit gleicher Stellenzahl. Für n sind sie Angaben 8, 16 und 32 möglich.
Methode | Funktion | Anmerkung |
---|---|---|
String toBin8Digits(uint8_t n) | Konvertiert eine Zahl in einen Binärzahl-String mit 8 Stellen. | Bei Zahlen mit mehr als 8 Bit wird nur das letzte Byte ausgegeben. |
String toBin16Digits(uint16_t n) | Konvertiert eine Zahl in einen Binärzahl-String mit 16 Stellen. | Bei Zahlen mit mehr als 16 Bit werden nur die letzten beiden Byte ausgegeben. |
String toBin32Digits (uint32_t n, char separator = '\0') |
Konvertiert eine Zahl in einen Binärzahl-String mit 32 Stellen. | UrsUtil.toBin32Digits(0xFFFFFFFF,' ') -> "1111 1111 1111 1111 1111 1111 1111 1111" |
Methode | Funktion | Anmerkung |
---|---|---|
tail(String& source, size_t length) | Liefert die rechten 'length' Zeichen eines Strings. | |
void reverse(char* src) | Kehrt die Zeichenfolge in einem Char-Array um. | "abc" -> "cba" |
String reverse(String& src) | Liefert einen String mit umgekehrter Zeichenfolge. | "abc" -> "cba" |
Methode | Funktion | Anmerkung |
---|---|---|
tring getCppVersion() | Liefert die aktuelle C++-Version. | z.B. "C++14" |