dapeace:
Allerdings bekomme ich beim zerlegen permanent folgenden Fehler:conversion from 'void' to non-scalar type 'String' requested
Ja, zum Parsen und Zerlegen von Strings müßte man natürlich schon so zwei bis drei Zeilen Code unfallfrei geradeaus programmieren können.
Ich habe Dir mal ein kleines Beispielprogramm gemacht:
void setup()
{
Serial.begin(9600);
String request="GET /rgb/set/7d52ff HTTP/1.1\r";
char* substr=strstr(request.c_str(),"HTTP/1.1\r")-7; // Substring lokalisieren
int red, green,blue;
sscanf(substr,"%02x%02x%02x%02x",&red,&green,&blue); // Substring in Farbwerte zerlegen
Serial.println("Scanned RGB values:");
Serial.print("red:\t"); Serial.println(red);
Serial.print("green:\t"); Serial.println(green);
Serial.print("blue:\t"); Serial.println(blue);
}
void loop() {
}
Das Beispielprogramm macht folgendes, alles in der setup-Funktion:
- Serielle Schnittstelle auf 9600 Baud initialisieren
- String als Textkonstante zuweisen
- gesuchte Werte im String lokalisieren
- RGB-Werte in Integerwerte umwandeln und auf Serial ausgeben
Wenn Du nach dem Programmstart den seriellen Monitor öffnest, sollten die Werte angezeigt werden.
Falls Du es anders brauchst, z.B. als eigenständige Funktion mit dem String als Funktionsparameter, gib Bescheid, das wäre nur eine minimale Änderung.
Wenn Du Fragen zum Code des Beispielprogramms hast, einfach Deine Frage hier posten.