Ich habe irgent wo gelesen das die ersten Bytes die länge des Strings angeben. Wenn ich diese Zahl nutzen könnte , könnte ich sie gegen die Variable austausche die die Göße meines Strings im Arduino angibt. Somit könnte ich einen Text jeder länge senden. Weiterhin müsste ich die ersten 2 bayt im display ausschneiden. Wie würde sowas gehen ?
Da ist wohl ein S7 String was anderes als in C.
char text[10] = "hallo"; // belegt 10 Byte, hat an Position 0 ein 'h' und an Position 5 eine 0.
// text[6] ist vom Inhalt her undefiniert, kann aber genutzt werden.
Serial.print(text); // gibt den text bis zur 0 aus, also 5 Buchstaben
Und was über die Leitung geht, müsste man genau anschauen.
Das "komische Symbol" kann natürlich ein Teil der Längen-Information sein.
void loop()
{
if (!alreadyConnected) {
// connect etc. ..., aber noch kein client.read()
// ...
}
if ( client.available() )
{
int c = client.read();
Serial.print(c); // als Dezimalzahl
Serial.print( " = ' " );
Serial.write( (char) c ); // als Zeichen wie gelesen
Serial.println(" ' ");
}
}
Das sollte dir genau anzeigen, was ankommt.
"Beliebig lange Texte" verarbeitest du am besten gleich, Zeichen für Zeichen, ohne erst alle zwischenzuspeichern.