- 3D-Druck Einstieg und Tipps         
Seite 8 von 10 ErsteErste ... 678910 LetzteLetzte
Ergebnis 71 bis 80 von 97

Thema: esp8266, Arduino IDE: neuer Versuch: warum wird website sofort beendet?

  1. #71
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Mit String-Funktionen.

    Normalerweise geht das sinngemäß:

    1. Liefere erstes Vorkommen eines Zeichens in Zeichenkette
    2. extrahiere aus erster Zeichenkette eine Neue, von Position bis Position
    3. Suche in neuer Zeichenkette nach Zeichen, dass das Ende markiert
    4. extrahiere vom Anfang der Zeichenkette bis zu der Position des Endezeichens
    5. gewünschter Inhalt ist extrahiert

    Zwei Methoden für Strings habe ich für Arduino schon gefunden:

    - indexOf()
    - lastIndexOf()

    interessant auch:
    - substring()

    indexOf() findet die Position eines gesuchten Zeichens
    substring() extrahiert eine Zeichenkette anhand einer Start- und Endposition


    Arduino.cc, TUTORIALS > Built-In Examples > 08.Strings
    Geändert von Moppi (23.10.2019 um 22:07 Uhr)

  2. #72
    HaWe
    Gast
    ja, so schrittweise habe ich es ja prinzipiell auch gemacht in meinen Funktionen, ich meinte aber fertige Arduino-Funktionen, die prinzipiell alles komplett erledigen ( allerdings bei mir mit ISO C ctrings, nicht C++ Strings)

  3. #73
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Musst Du eine Funktion schreiben, dies das dann erledigt, wie Du das brauchst. Oder vielleicht gibt es eine fertige Bibliothek schon?
    Braucht man aber auch nicht wirklich. Wenn man die Zeichenkette kennt, die kommt, also weiß, wo Start- und Endzeichen sind, kann man so einen Ausdruck in einer Codezeile formulieren.

    MfG

  4. #74
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    zum Beispiel:

    Wenn der String so vom Browser, per GET, übermittelt wird:

    Code:
    ?uname=...&upwd=...



    Dann kann die ganze Zeile eingelesen werden mit:

    Code:
    String rS = client.readStringUntil('\r');
    Und das Extrahieren der Informationen in der richtigen Reihenfolge, wenn nur zwei Felder existieren, könnte dann so funktionieren:


    Code:
    String website_uname = rS.substring(rS.indexOf('=')+1,rS.indexOf('&'));
    String website_upwd = rS.substring(rS.lastIndexOf('=')+1);
    Sollen die Feldbezeichnungen überprüft werden, stehen die Feldbezeichnungen und deren inhalte (upwd=...) in anderer Reihenfolge, soll die Funktion Inhalte, beliebig übermittelter Formularfelder, extrahieren? - Dann wird das Vorgehen natürlich komplizierter.


    MfG


    PS: der Code ist nur beispielhaft, habe nicht verifiziert, ob er so fehlerfrei compiliert wird. Soll nur der Anschauung dienen, wie es gemeint ist.
    Geändert von Moppi (24.10.2019 um 07:24 Uhr)

  5. #75
    HaWe
    Gast
    nein, es ging doch nicht darum, so eine Funktion aus Einzel-Schritten neu zu schreiben, genau das habe ich doch bereits getan (cstringarg() ).
    Es ging darum, ob Arduino so etwas wie mein cstringarg() bereits fertig für diese und ähnliche Zwecke zur Verfügung stellt, das würde es für komplette Anfänger einfacher machen und es müsste nicht jeder das Rad neu erfinden.

  6. #76
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich hatte Dich schon richtig verstanden, ich kenne doch Deinen Quellcode mit dem cstringarg() wo wir lange dran gebastelt haben, weil da auch was im argen war. Da kamen auch noch in andern Foren Fragen dazu auf.
    Anfänger und Arduino-"Bordmittel", da würde ich schon so etwas hernehmen: rS.substring(rS.indexOf('=')+1,rS.indexOf('&'));
    Ist auch für Anfänger einfach zu verstehen, ist ja nichts besonderes dran. Das Rad ist ja damit schon erfunden. Das sind gängige Lösungen, die Du überall antriffst (C++,Java,JavaScript ..).

    Man muss noch was anderes bedenken:

    Für so kleine Aufgaben lohnt es nicht, viel Overhead dazu zu packen, was den Gesamtquellcode und das fertige Kompilat unnötig aufblähen würde. Solche Universalmethoden (bei Objekten) belegen eine Menge Platz, nur, damit es einen kleinen Tacken bequemer ist. Damit belegst Du dann ein Vielfaches an Speicherplatz mehr, mal von der Rechenzeit / Taktzyklen abgesehen. Für seine eigenen Zwecke kann man das in eine Funktion packen, um das nicht immer neu schreiben zu müssen. Allerdings ist der Funktionsaufruf, in Gänze, dann vermutlich kaum kürzer.




    MfG

  7. #77
    HaWe
    Gast
    mit cstringarg() lag nichts "m Argen", das funktionierte von Anfang an bis jetzt einwandfrei, und es kann ja vielfache verschiedene Variablen über ihre verschiedenen Namen und samt ihrer verschiedenen Werte aus sehr langen zusammengesetzten cstrings herausextrahieren. Bei meinem Ursprungscode war prinzipiell der einzige Knackpunkt, dass zusätzlich eine Längenübermittlung beim Lesen und senden eines hthml-Inputstrings nötig ist.

    Man braucht so etwas wie cstringarg() allerdings ständig, auch z.B. wenn man z.B. zwischen esp-Master und mehreren esp clients Variablenwerte hin und her schicken will.

    Aber ich verstehe deine Antwort dann also richtig als "nein, du kennst auch noch keine komplette, fertige Funktion dafür in einer existierenden Arduino-Lib"...

  8. #78
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Nein, ich kenne keine fertigen Bibliotheken, weil ich bis jetzt keine brauchte, sie also auch nie gesucht habe.
    Da Du aber nach Arduino-Funktionen fragtest, kann man wohl nur die String-Methoden nennen, die ermöglichen Strings zu durchsuchen und Teile daraus zu extrahieren.


    MfG

  9. #79
    HaWe
    Gast
    nein, denn es ging ja in meiner Frage um eine fertige Funktion, die alles mit Suchen und Extrahieren komplett macht.

  10. #80
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Und jetzt? Was soll daraus werden? Wie es soll es weiter gehen?


    MfG

Seite 8 von 10 ErsteErste ... 678910 LetzteLetzte

Ähnliche Themen

  1. arduino ide mit esp8266
    Von NotEvil im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 4
    Letzter Beitrag: 12.01.2017, 15:17
  2. Raspberry Pi 3: Neuer Bastelrechner ist ab sofort verfügbar
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 4
    Letzter Beitrag: 29.02.2016, 21:56
  3. [ERLEDIGT] Google wird am Lenovo-Tablet ohne Zutun beendet
    Von oberallgeier im Forum Offtopic und Community Tratsch
    Antworten: 5
    Letzter Beitrag: 24.11.2015, 09:02
  4. Funktion wird nicht richtig beendet
    Von kowolfgang im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 31.12.2008, 17:37
  5. schieberegister neuer versuch...
    Von Bluesmash im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 11.07.2005, 22:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen