Probleme beim kürzen eines Strings

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.