Streaming.h: Verkettung formattiert in Variable (String, char) leiten

Ich beschäftigen mich gerade etwas mit der streaming.h von Streaming | Arduiniana

das geht alles:
Serial << "Counter: " << counter;
lcd << “Temp: " << t.get_temperature() << " degrees”;

Folgendes aus den beispielen der Webseite bekomme ich nicht hin:
my_pstring << “Hi Mom!” << endl;
Als was muss ich my_pstring deklarieren, dass es geht? char, char, String oder was? Ich habe alles mir bekannte probiert, muss allerdings zugeben, dass ich in dem bereich noch lücken habe :cold_sweat:

Ebenso möchte ich bei float Variablen die Nachkommastellen angeben können, finde aber auch nichts darüber, dass man z.B. folgendes ausgeben kann (wie bei anderen Methoden möglich):
“Temperatur 22,3 C, letzte Messung 9:53h, 20/9/14”
anstatt
“Temperatur 22,34 C, letzte Messung 9:53h, 20/9/14”

Wenn ich das nun eben in EINER Variablem hätte, könnte ich die per LCD, seriell, Webseite, SMS, SD, etc. ausgeben und müsste sie nicht jedesmal neu konstruiren.

Mit Strings geht das nicht. Keine Ahnung wie du darauf kommst. Das ist als Ersatz für print() gedacht! Schau dir mal den Header an dann verstehst du das auch. Das sind lediglich ganz einfache inline Funktionen die den << Operator überladen:

template<class T> 
inline Print &operator <<(Print &stream, T arg) 
{ 
     stream.print(arg);
     return stream;
}

Da ist auch erklärt wie Nachkommastellen gehen:

// Serial << _FLOAT(gps_latitude, 6); // 6 digits of precision

Wie ist dan dies gemeint.

my_pstring << “Hi Mom!” << endl;

P.S: // Serial << _FLOAT(gps_latitude, 6); // 6 digits of precision
Das klappt schon mal. Danke

Keine Ahnung. Ich dachte vielleicht die Arduino String Klasse, aber die ist nicht von der Print Klasse abgeleitet. Wie gesagt geht das nur mit Klassen wo man normalerweise print()/println() schreibt

C Strings (char Arrays) aus einzelnen Variablen zusammensetzen geht generell mit der printf() Familie. Am besten snprintf() oder snprintf_P().
Das geht allerdings ohne Umwege auf dem Arduino nicht mit Float.

Ich habe mal nen Kommentar auf Streaming | Arduiniana hinterlassen. Vielleicht hat er ja einen Fehler in seiner Beschreibung

Habs herausgefunden. Man muss die PString klasse mit einbinden, PString variable anlegen, und in diese kann man streamen. Tolle Sache.