- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 97

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    bei mir haben alle Versionen seit 2.4.0 das geschilderte "Problem", irgendwie scheinen die eher für Fehler oder Ungenauigkeiten im Code anfällig zu sein - trotzdem müsste man es zum Laufen kriegen, sonst würden sie ja auch unter 2.4.0 nicht laufen.

    - - - Aktualisiert - - -

    PS,
    hier übrigens meine Parserfunktionen, um username + pwd herauszufiltern:

    Code:
    //----------------------------------------------------------------------------
    // String functions
    //----------------------------------------------------------------------------
    
    int16_t  strstrpos(char * haystack,  char * needle)   // find 1st occurance of substr in str
    {
       char *p = strstr(haystack, needle);
       if (p) return p - haystack;
       return -1;   // Not found = -1.
    }
    
    //-------------------------------------------------------
    const int  MAXLEN = 1024;
    const int  TOKLEN = 64;
    
    //-------------------------------------------------------
    char * cstringarg( char* haystack, char* vname, char* sarg ) {
       int i=0, pos=-1;
       unsigned char  ch=0xff;
       const char*  kini = "&";       // start of varname: '&'
       const char*  kin2 = "?";       // start of varname: '?'
       const char*  kequ = "=";       // end of varname, start of argument: '='
       char  needle[TOKLEN] = "";     // complete pattern:  &varname=abc1234
    
       strcpy(sarg,"");
       strcpy(needle, kini);
       strcat(needle, vname);
       strcat(needle, kequ);
       pos = strstrpos(haystack, needle); 
       if(pos==-1) {
          needle[0]=kin2[0];
          pos = strstrpos(haystack, needle);
          if(pos==-1) return sarg;
       }
       pos=pos+strlen(vname)+2; // start of value = kini+vname+kequ   
       while( (ch!='&')&&(ch!='\0') ) {
          ch=haystack[pos+i];    
          if( (ch=='&')||(ch==';')||(ch==' ')||(ch=='\0') ||(ch=='\n')
            ||(i+pos>=strlen(haystack))||(i>TOKLEN-1) ) {
               sarg[i]='\0';
               return sarg;
          }       
          if( (ch!='&') ) {
              sarg[i]=ch;          
              i++;       
          }      
       } 
       return sarg;
    }
    
    
    // *SNIP*
    
       cstringarg(strinput, "uname", struname); // uname
       cstringarg(strinput, "upwd", strupwd); // upwd

    sie funktionieren sehr gut, und sehr wschl liegt hier wirklich nicht das Problem - lasse mich aber gern vom Gegenteil überzeugen!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.667
    Ja, schon. Bloß wenn Ivan Grokhotkov keinen lauffähigen Code hinbekommt ...



    Kannst Du bis auf die Grundfesten alles auseinandernehmen, das kann Wochen oder Monate dauern.

    Probleme mit Datentypen, Steuerzeichen, Formaten ....

  3. #3
    HaWe
    Gast
    Zitat Zitat von Moppi Beitrag anzeigen
    Ja, schon. Bloß wenn Ivan Grokhotkov keinen lauffähigen Code hinbekommt ...

    ...der ja auch nicht viel anders aussieht als unserer hier...

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.667
    Das Problem liegt in der Übertragung zum Browser oder am Inhalt selber. Kann nicht sein, dass ein Browser zwar den Inhalt anzeigt, aber das nodeMCU (vmtl. während der Kommuniaktion) hängen bleibt und ein anderer Browser den Inhalt gar nicht anzeigt und ihn also nicht interpretieren kann, dafür aber das nodeMCU nicht hängt.

    Bei mir funktioniert es ab dieser Stelle z.B. gar nicht, mit keinem der beiden Browser:

    Code:
    // wait for end of client's request, that is marked with an empty line
    if (line.length() == 1 && line[0] == '\n')
    Geändert von Moppi (21.10.2019 um 15:47 Uhr)

  5. #5
    HaWe
    Gast
    immerhin funktioniert ja die Version auf S. 2
    https://www.roboternetz.de/community...l=1#post655516
    schon ziemlich gut, danke noch mal
    - vlt fällt ja jemand noch was ein wegen des 2x Enter- oder Button-drücken müssens...

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.667
    letzteres passiert, wenn eine Eingabe verloren geht. Oder das Programm wartet auf Zeichen, kann die Übertragenen nicht zuordnen und verwirft sie - und erst beim nächsten Mal klappts wieder. Das kann auch dort passieren, wo Du das Passwort und den User extrahierst (bzw. die Zeichen dafür einliest).

  7. #7
    HaWe
    Gast
    ja, ich denke da auch an das endofline-Zeichen \n vs. \r\n etc...
    es geht aber nicht zufällig verloren, sondern immer das 1. Mal und immer nur das 1. Mal, und beim 2. Mal klappt es immer!

Ähnliche Themen

  1. arduino ide mit esp8266
    Von NotEvil im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 4
    Letzter Beitrag: 12.01.2017, 14: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, 20: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, 08:02
  4. Funktion wird nicht richtig beendet
    Von kowolfgang im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 31.12.2008, 16:37
  5. schieberegister neuer versuch...
    Von Bluesmash im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 11.07.2005, 21:10

Berechtigungen

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

LiFePO4 Speicher Test