Die abstrakte Klasse Stream ist die Basis Klasse für zeichenorientierte und binäre Ströme. Stream definiert die Lese-Funktionen des Arduino. Für die Ausgabe von Daten stehen die von Print geerbten Methoden zur Verfügung.
Die abstrakten Methoden available(), read(), peek() und flush() müssen von einer konkreten Klasse hardwarespezifisch implementiert werden.
Methoden | |||
constructor | Stream () | Initialisiert eine neune Instanz der Klasse Stream. | |
virtual int | available () = 0 | Liefert die Anzahl Bytes, die aktuell eingelesen werden können, also z.B. bereits gepuffert wurden. | Diese Funktion muss von einer auf die
Hardware zugeschnitten Klasse überschrieben werden. Siehe auch Arduino-Referenz |
virtual int | read () = 0 | Liest ein Byte aus dem Stream und liefert es zurück. Der Rückgabewert -1 signalisiert, dass das aktuell keine Daten zur Verfügung stehen. | Diese Funktion muss von einer auf die
Hardware zugeschnitten Klasse überschrieben werden. Siehe auch Arduino-Referenz |
virtual int | peek () = 0 | Liest ein Byte aus dem Stream ohne es zu entfernen. Ein mehrfaches Aufrufen von peek() liefert immer das gleiche Ergebnis, das auch ein Aufruf von read() liefern würde. Der Rückgabewert -1 bedeutet, dass kein Zeichen zum auslesen vorhanden ist. | Diese Funktion
muss von einer auf die Hardware zugeschnitten Klasse überschrieben werden. Siehe auch Arduino-Referenz |
protected int | timedRead () | timedRead() versucht wiederholt ein Zeichen einzulesen. Ist dies während des vorgegeben Zeitlimits (s. setTimeout()) nicht möglich, wird -1 zurückgeliefert, ansonsten das eingelesene Zeichen. | |
protected int | timedPeek () | timedPeek() prüft wiederholt auf ein vorhandenes Zeichen. Ist dies während des vorgegeben Zeitlimits (s. setTimeout()) kein Zeichen verfügbar, wird -1 zurückgeliefert, ansonsten das vorhandene Zeichen. Das Zeichen wird nicht aus dem Stream entfernt (s. peek()). | |
protected int | peekNextDigit () | peekNextDigit() entfernt solange vorhandene Zeichen aus dem Stream, bis ein gültiges Ziffernzeichen ('-', '0'...'9') zur Verfolgung steht. Dieses wird dann zurückgeliefert, aber selbst nicht aus dem Stream entfernt. Ein Timeout wird über den Rückgabewert -1 gemeldet. | peekNextDigit() nutzt timedPeek() zur Ermittlung der Zeichen und read() zum Entfernen führender nicht numerischer Zeichen. |
size_t | readBytes (char *buffer, size_t length) |
readBytes() liest Daten aus dem Stream in den Puffer buffer. Die Funktion bricht ab, wenn die angegebene Anzahl an Bytes eingelesen oder das Zeitlimit (s. setTimeout()) überschritten wurde. Der Rückgabewert ist die Anzahl der eingelesenen Zeichen. Der Rückgabewert 0 bedeutet, dass keine Daten gelesen werden konnten. |
buffer wird nicht durch ein '\0' abgeschlossen. readBytes() nutzt Siehe auch Arduino-Referenz |
size_t | readBytesUntil (char terminator, char *buffer, size_t length) |
readBytes() liest Daten aus dem Stream in den Puffer buffer. Die Funktion bricht ab, wenn die angegebene Anzahl an Bytes eingelesen, das Stoppzeichen terminator eingelesen oder das Zeitlimit (s. setTimeOut()) überschritten wurde. Der Rückgabewert ist die Anzahl der nach buffer übertragenen Zeichen. Das Stoppzeichen wird nicht mit übertragen und zählt auch bei der zurück gelieferten Zeichenanzahl nicht mit. Der Rückgabewert 0 bedeutet, dass keine Daten gelesen werden konnten. | readBytesUntil() nutzt
Siehe auch Arduino-Referenz |
String | readString () | readString() liest Zeichen in einen String. Die Funktion bricht erst dann ab, wenn kein weiteres Zeichen innerhalb des Zeitlimits gelesen werden konnte (s. setTimeout()). | readString() nutzt Siehe auch Arduino-Referenz |
String | readStringUntil (char terminator) | readStringUntil() liest Zeichen in einen String. Die Funktion bricht ab, wenn das Stoppzeichen gelesen wurde oder kein weiteres Zeichen innerhalb des Zeitlimits gelesen werden konnte (s. setTimeout()). Das Stoppzeichen wird nicht mit übertragen. | readStringUntil() nutzt
Siehe auch Arduino-Referenz |
bool | findUntil (char *target, size_t targetLen, char *terminate, size_t termLen) |
Es werden so lange Daten aus dem Stream entfernt, bis
Die eingelesenen Zeichen werden verworfen. Dies gilt auch für target und terminate. |
findUntil() nutzt Siehe auch Arduino-Referenz |
bool | findUntil (char *target, char *terminator) |
Es werden so lange Daten aus dem Stream entfernt, bis
Die eingelesenen Zeichen werden verworfen. Dies gilt auch für target und terminate. |
findUntil() nutzt Siehe auch Arduino-Referenz |
bool | find (char *target, size_t length) |
Es werden so lange Daten aus dem Stream entfernt, bis
Die eingelesenen Zeichen werden verworfen. Dies gilt auch für target. |
find() nutzt Siehe auch Arduino-Referenz |
bool | find (char *target) |
Es werden so lange Daten aus dem Stream entfernt, bis
Die eingelesenen Zeichen werden verworfen. Dies gilt auch für target. |
find() nutzt Siehe auch Arduino-Referenz |
long | parseInt () | Liest eine Ganzzahl ein. Führende nicht
numerische Zeichen werden übersprungen. Die Funktion bricht ab, wenn
das erste nicht numerische Zeichen nach einem gültigen Zeichen ('-',
'0'...'9') gelesen wurde oder eine
Zeitüberschreitung während des Einlesens auftritt. Kann innerhalb des Zeitlimits keine einziges gültiges Zeichen erkannt werden, wird 0 zurückgegeben. Tritt eine Zeitüberschreitung während des Einlesens auf, wird der bis dahin ermittelte Wert zurückgeliefert. |
Siehe auch Arduino-Referenz |
protected long | parseInt (char skipChar) | Wie ParseInt(). skipChar, typischerweise ein Trennzeichen wie Tausendermarkierung, werden ignoriert und führen nicht zum Abbruch des Einlesens. | |
float | parseFloat () | Analog zu ParseInt() jedoch für Fließkommazahlen. | Siehe auch Arduino-Referenz |
protected float | parseFloat (char skipChar) | Analog zu ParseInt() jedoch für Fließkommazahlen. | |
virtual void | flush () = 0 | Löscht alle Puffer für diesen Stream und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät. | Diese Funktion muss von einer auf die
Hardware zugeschnitten Klasse überschrieben werden. siehe auch Arduino-Referenz |
void | setTimeout (unsigned long timeout) | setTimeout() legt die zeit in Millisekunden fest, nach deren Überschreitung auf Timeout erkannt wird. Die Voreinstellung ist 1000 Millisekunden. | Der Wert wird in de geschützten Variablen
_timeout abgelegt. Von Stream abgeleitete Klassen
können auf dien Wert zu greifen. Siehe auch Arduino-Referenz |
Siehe auch:
Klasse
Print
Arduino-Referenz
Arduino-Anatomie: How
to Print!?