Query String auslesen

Gibt es eine Möglichkeit mit Hilfe der Arduin IDE einen Query string auszulesen und die Werte in Variablen zu speichern?

Beispiel: http://192.168.32.199/ipbroker=192.168.32.199&portbroker=1883&maschine=Maschine+1&eingang1=A

Ja klar.
Arduino liefert die String-Klasse, mit der sowas geht. Außerdem kann man jede Zeichenkette (Datentyp char*) entsprechend auswerten mit Funktionen der avrgcc oder entsprechender anderer c++ Libraries, je nach Arduino-Typ -> strchr strstr strtok atoi etc.

Wobei mir die Beispiel-URL etwas exotisch erscheint mit dem '=' im Pfad und ohne ein '?', aber egal.

Gibt es dafür ein Beispiel an dem man sich orientieren könnte?

h-marco:
Gibt es eine Möglichkeit mit Hilfe der Arduin IDE einen Query string auszulesen und die Werte in Variablen zu speichern?

Mit dem Arduino oder mit der IDE am Rechner?

Gruß, Jürgen

noiasca:
worum gehts dir genau?

ist das ein (verhunzter) eingehender HTTP request denn du zerteilen möchtest?

Woher bekommst du das?
Was willst du damit machen?
Wie sieht dein bisheriger Sketch aus?
Welcher Microcontroller?

Von einem von mir erstellten WebServer.
Ich die Query URL in ihre Bestandteile zerlegen und in Variablen auf meinen Microcontroller speichern.

Bisheriger Skech:

#include <Wire.h>        
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {0XE0, 0XDC, 0XA0, 0X19, 0XFC, 0X67 };  
byte ip[] = {192, 168, 32, 199 };    

byte gateway[] = {192, 168, 32, 1 };       
byte subnet[] = { 255, 255, 255, 0 };

EthernetServer server(80);


void setup() 
{ 
    Serial.begin(9600);
    Wire.begin();       
    Ethernet.begin(mac, ip);
    server.begin();   
}


void loop() 
{      
   EthernetClient client = server.available();
                                           
  if (client) {
    while (client.connected()) {
        if (client.available()) { 

    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println();
                                                                                   
    client.print("HTTP/1.0 200 OK\r\nServer: arduino\r\nContent-Type: text/html\r\n\r\n");
    client.print("<HTML><HEAD><TITLE>");
    client.print("Maschinensteuerung");
    client.print("</TITLE>");
    client.print("</HEAD><BODY>");
    client.print("<h2 align=center><font size=7><b> Maschinensteuerung </b></font></h2>");

        
    client.print("<form action=\"http://192.168.32.199:80\" method=get>");
    client.print("<label> IP Broker: </label>");
    client.print("<input type=text id=ipbroker name=ipbroker> value=''

");
    client.print("<label> Port Broker: </label>");
    client.print("<input type=text id=portbroker name=portbroker>

");
    client.print("<label> Bezeichnung Maschine: </label>");
    client.print("<input type=text id=maschine name=maschine>

");
    client.print("<label> Bezeichnung Eingang 1: </label>");
    client.print("<input type=text id=eingang1 name=eingang1>

");
    client.print("<label> Bezeichnung Eingang 2: </label>");
    client.print("<input type=text id=eingang2 name=eingang2>

");
    client.print("<label> Bezeichnung Eingang 3: </label>");
    client.print("<input type=text id=eingang3 name=eingang3>

");
    client.print("<label> Bezeichnung Eingang 4: </label>");
    client.print("<input type=text id=eingang4 name=eingang4>

");
    client.print("<label> Bezeichnung Eingang 5: </label>");
    client.print("<input type=text id=eingang5 name=eingang5>

");
    client.print("<input type=submit value=Senden>");
    client.print("<form>");
    

    delay(500);                                                                                 
    client.stop();
   }
  }
 }
}

Als Microcontroller verwende ich ein Siemens IOT2020 mit dem Intel Galileo Gen2 Board!

http://192.168.32.199/?ipbroker=192.168.32.199&portbroker=1883&maschine=Maschine+1&eingang1=A&eingang2=B&eingang3=C&eingang4=D&eingang5=E

noiasca:
aha.
Dann würde ich raten, häng dich zu diesem Kameraden, der versucht gerade das gleiche:

HTML Input Form: Input in Variablen speichern, und an Arduino übertragen - Deutsch - Arduino Forum

Der Thread wurde von mir erstellt nur leider hat es zu keiner Lösung geführt!