Verstehe ich nicht. https://www.roboternetz.de/community...l=1#post655726
in welcher lib für welche Klasse?
Verstehe ich nicht. https://www.roboternetz.de/community...l=1#post655726
du gibst nur Methoden an,
die sind aber gekapselt in Klassen..args(): liefert Zahl der Parameter, im Query-String
.argName(x): liefert den Namen des Arguments x, vom Query-String
.arg(x): liefert den Parameter, des Arguments x, vom Query-String
.arg(String name): liefert den Wert des Parameters name
Es sind z.B. keine Methoden der String-Klasse und auch keine Methoden der WiFiClient -Klasse.
Also wie heißt die Klasse dazu?
oder, anders gefragt:
wie willst du diese Funktionen nutzen, wenn du einen String erhalten hast über
ich verrate dir dazu so viel: Dies alles funktioniert nicht:Code:WiFiClient client = wifiserver.available(); ... while ( (readString.length() < TOKLEN) && (c != '\n') ) { readString += c; c = client.read(); }
Code:client.args(): liefert Zahl der Parameter, im Query-String client.argName(x): liefert den Namen des Arguments x, vom Query-String client.arg(x): liefert den Parameter, des Arguments x, vom Query-String client.arg(String name): liefert den Wert des Parameters name // und ebensowenig: readString.args(): liefert Zahl der Parameter, im Query-String readString.argName(x): liefert den Namen des Arguments x, vom Query-String readString.arg(x): liefert den Parameter, des Arguments x, vom Query-String readString.arg(String name): liefert den Wert des Parameters namedenn vermutlich sind es Methoden der ESP8266 webserver-Klasse (IIRC), die du gefunden hast, und das nützt uns hier in der WifiClient-Klasse oder der String-Klasse nichts.Code:Generating function prototypes... error: 'class WiFiClient' has no member named 'args' ... exit status 1 'class WiFiClient' has no member named 'args'
Also kannst du damit keinen String weiter verarbeiten, den ein WiFiClient erhalten hat, sondern nur einen, den ein ESP8266 webserver erhalten hat
- genau deswegen habe ich nämlich cstringarg() geschrieben
PS: ich habe diese ESP8266 webserver-Methoden bei den esp-Leuten auch schon vor langer Zeit als Verbesserung für die webclient-Klasse als Erweiterung vorgeschlagen, aber sie haben es als nicht unterstützenswert abgelehnt.
Genau das meint ich übrigens u.a. auch als ich schrieb: "komisch drauf".
DAs ist einer der GRünde warum ich mit den Methoden von den unterschiedlichen Libs eigentlich garnicht erst anfange wollte, wir werden hier zu Hardwarespezifisch und das sind alles irgendwie nur "proprietäre" Lösungen
ICh bin auch nciht schlau geworden in welchem Modul aus welcher Version nur welche Implementation steckt, daher hatte ich auch einne externe Lib vorgeschlagen, auch wenn man die erst wieder einbinden muss, scheint sie zumindest gereift und stabil von dem was ich im Bugtracker lese
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
der Grund ist eigentlich eher, dass die esp Entwickler manche Methoden in manchen Klassen implementiert haben und in anderen nicht.
Das hat nichts mit hardwarespezifisch zu tun, denn ALLES ist ja für ESP8266, nur einmal für die Kommunikation mit anderen esp (.args enthalten), und das andere mal für die Kommunikation mit selber aufgebauten html-websites (.args NICHT enthalten).
Ähnliches gilt für den TextFinder, der nur *streams akzeptiert, aber keine Strings und keine cstrings.
Meine cstringarg() Funktion samt ststrpos() ist ja nun quasi eine Funktion einer externen lib, nur ist sie offenbar in dieser Kürze und Würze noch nicht für Arduino-user allgemein verfügbar.
Damit können wir dann aber auch dieses Thema schließen, denke ich.
Hallo,
ich wollte mich nicht wiederholen, was auch unnötig war, aber mach ich es - zu Lasten des Servers, auf dem das Forum sein Dasein fristet - eben nochmal:
Zitat von Ceos
der Wifiserver und der WifiESPServer und der ESP8266Server scheinen da wohl eine art Unterstützung zu haben, aber das waren sehr diffuse Diskussionen in englisch bei denen es nicht exakt um dein Problem ging, daher kann ichd a auch nichts genaueres dazu sagen, aber es hat mich auch stark gewundert dass man mit µPython-Flask so umfangreiche Unterstützung bekommt aber der Arduino WifiServer so spärlich bestückt ist
Darauf schrieb ich:
Nach einem kurzen Einwand HaWe's schrieb ich dann:Die ESP8266WebServer-Klasse stellt bessere Methoden zur Verfügung, mit denen sich viele dieser Sachen erledigen lassen, wie Daten aus dem Header auslesen etc.. So weit ich - kurz überflogen - gesehen habe, ist dort einiges enthalten, um das Handling mit Webseiten zu vereinfachen.
.args(): liefert Zahl der Parameter, im Query-String
.argName(x): liefert den Namen des Arguments x, vom Query-String
.arg(x): liefert den Parameter, des Arguments x, vom Query-String
.arg(String name): liefert den Wert des Parameters name
Wir führen doch eine Diskussion(?). Mit "verstehe ich nicht" meinerseits war gemeint, dass ich nicht verstehe, warum man sich nicht erinnern kann, was zwei/drei Sätze vorher gesagt / geschrieben wurde; es könnte auch nachgelesen werden; obwohl ich es nochmals verlinkt habe, wo die Antwort zu finden ist, wird es trotzdem nicht gelesen. - Macht nichts!
Bin auch nur drauf gestoßen, weil ich mich gerade mal etwas näher damit befasse.
MfG
- - - Aktualisiert - - -
Bevor es jetzt noch absurder wird, bin ich mal raus aus dem Thread.
Geändert von Moppi (26.10.2019 um 21:55 Uhr)
ach so, das mit den "besseren Funktionen" war nur ganz allgemein auf andere esp Libs bezogen - das hatte ich nicht verstanden.
Ja, das stimmt.
Ich dachte, es war gemeint in Bezug auf den WiFiClient Code aus dem TOP, quasi als Lösung, um dessen Funktionen zu ersetzen
- aber darauf kann man seine Methoden ja nicht anwenden, und daher meine Antwort, dass es nicht ginge
- aber das war ja dann auch genau das, was du ebenfalls meintest.
Lesezeichen