Motivation

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.

In­halts­ver­zeich­nis

Download

Verwendung

Methoden

Formatierung von Ganzzahlen

Mit Tausender-Trennzeichen

Konvertierung in Hexadezimalzahl

Konvertierung in Binärzahl

String-Bearbeitung

Divers


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.

Download

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

Verwendung

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));

Methoden

Formatierung von Ganzzahlen

Mit Tausender-Trennzeichen

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.

Konvertierung in Hexadezimalzahl

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"

Konvertierung in Binärzahl

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"

String-Bearbeitung

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"

Divers

Methode Funktion Anmerkung
tring getCppVersion() Liefert die aktuelle C++-Version. z.B. "C++14"