- Akku Tests und Balkonkraftwerk Speicher         
Seite 5 von 9 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 90

Thema: html-Code für virtuelles website-Button-Pad

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

    LiFePo4 Akku selber bauen - Video
    Probier mal diesen Code:


    KeyPadSource5.zip


    Buttons färben sich, Puffer wird bei Clear gelöscht und der Status für die Buttons wird zurückgesetzt, wenn das Muster geändert wird.




    MfG

  2. #42
    HaWe
    Gast
    nochmal:
    zip Anhänge bringebn nichts, besser man kann es dirket lesen, um sich darüber zu verständigen.

    und: nein, es soll sich der Status von
    Learn
    Detect
    nur dann ändern, wenn eine von beiden Tasten geclickt wurde, und dann dauerhaft so bleiben.
    Wenn es vom Programm intern geändert wird, soll es sich entsprechend anpassen, damit man immer sieht, welcher Mode aktiv ist.
    Der jeweilge Status wird gespeichert in den Variablen
    modeLearn
    modeDetect


    wenn man frisch OK geklickt hat, muss man aber auch immer noch 2x Clear clicken, bis das Keypad gelöscht wird.


    verwende jetzt mal bitte original meinen Code als Basis, weil ich mittlerweile schon ein aar Dinge abgewandelt habe, u.a. Variablennamen und auch void setup(void).

    Code:
    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>
    
    // Version 0.0.3
    
    
    const char* ssid = "WLAN";
    const char* password = "0.0.3";
    
    ESP8266WebServer server(80);
    
    //-----------------------------------------------------
      //HTML und Daten für das Eingabe-/Ausgabefeld
      //einfügen im globalen Scope
      //-----------------------------------------------------
      //erstellt von (c): Moppi    @roboternetz.de
      //-----------------------------------------------------
      //Hintergrundfarbe Buttons, wenn aktiv
        const String bColorActiv = "red";
      //Breite und Höhe des ges. Feldes
        const int tableWidth = 10;
        const int tableHeight = 10;
      //Füllzeichen für Felder
        const String fillChar = "X";
      //Parameter-Array enthält den Status aller Felder
      //der Ein-/Ausgabematrix (0= AUS, 1= AN)
        bool matrix[tableHeight*tableWidth]={0};
      //Status, ob Änderungen vorliegen
        bool toChange = 0;
        bool toLearn = 0;
        bool toDetect = 1;
        bool toReset = 0;
        bool toSave = 0;
        bool toClear = 0;
      //HTML
        String body = "";
        String s1="<style>\nform{margin:0}\n#un{width:0;height:0;visibility:hidden}\n#bu{width:10em;height:2em;}\n#rw{display:table-row;}\n#ce{display:table-cell;}\n#ip{width:1.5em;text-align:center;font-weight:bold}\n</style>\n<script>dge=document.getElementById; function oc(ob){if(ob.value=='')ob.value='"+fillChar+"';else ob.value='';}</script>\n<div role=\"presentation\" style=\"display:table\"><div id='rw'><div id='ce' style=\"padding-right:1em\"><form method=\"get\"><div role=\"presentation\" style=\"margin-bottom:1em;display:table\">";
        String s2="<div id=\"rw\">";
        String s3="<div id=\"ce\"><input onclick=\"oc(this);\" type=\"text\" name=\"b";
        String s3_1="\" value=\"";
        String s3_2="\" maxlength=\"1\" id=\"ip\"></div>";
        String s4="</div>";
        String s5="</div><div id='ce'><input id=\"bu\" type=\"submit\" value=\"Change:Ok\"><p></form>";
        String s5_0="<form method=\"get\"><input id=\"bu\" type=\"submit\" value=\"Clear\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"clear\"></form>"; 
        String s5_1="<form method=\"get\"><input id=\"bu\" style=\"background-color:";
        String s5_1n="\" type=\"submit\" value=\"Learn\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"learn\"></form>";
        String s5_2="<form method=\"get\"><input id=\"bu\" style=\"background-color:";
        String s5_2n="\" type=\"submit\" value=\"Detect\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"detect\"></form>";
        String s5_3="<form method=\"get\"><input id=\"bu\" type=\"submit\" value=\"Reset\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"reset\"></form>";
        String s5_4="<form method=\"get\"><input id=\"bu\" type=\"submit\" value=\"Save\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"save\"></form></div></div></div>";
        
        String par="b";
      //-----------------------------------------------------
    
    
    float bufferArray[100];
    
    void setup() {
    
      Serial.begin(115200);
      delay(1000);
      Serial.println();
    
      //-----------------------------------------------------
      //Anmeldung am Netzwerk
      //-----------------------------------------------------
      Serial.println("connecting by IPAddress(192,168,2,99)");
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password); //begin WiFi connection
      WiFi.config(IPAddress(192, 168, 2, 99), IPAddress(192, 168, 2, 1), IPAddress(192, 168, 2, 1), IPAddress(255, 255, 255, 0));
    
      Serial.println("");
    
      // Wait for connection
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.print("Connected to ");
      Serial.println(ssid);
      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
    
    
      //-----------------------------------------------------
      //Auswertung und Erstellung des Ein-/Ausgabefeldes
      //-----------------------------------------------------
      //Einbinden in setup() und in loop() nutzen durch
      //Aufruf von "server.handleClient();"
      //benötigt Objekt "server", erstellt im globalen Scope
      //mittels:       ESP8266WebServer server(80);
      //benötigt auch: #include <ESP8266WebServer.h>
      //-----------------------------------------------------
      //erstellt von (c): Moppi    @roboternetz.de
      //-----------------------------------------------------
      server.on("/",[]()
       {
        //Auswerten des Query-String vom Browser
        int n = 0; 
        if(server.hasArg("bn")){
          if(server.arg("bn") == "clear") toClear=1; else {toClear=0; toChange=0; for(int i=0; i<(tableWidth*tableHeight); i++) matrix[n] = 0;}
          if(server.arg("bn") == "save") toSave=1; else toSave=0;
          if(server.arg("bn") == "reset") toReset=1; else toReset=0;
          if(server.arg("bn") == "detect") toDetect=1; else toDetect=0;
          if(server.arg("bn") == "learn") toLearn=1; else toLearn=0;
        }
        for(int x=0; x < tableHeight; x++){
          for(int j=0; j < tableWidth; j++){
            if(server.hasArg(par+String(n))){
              String a = server.arg(par+String(n));
              bool ic = matrix[n];
              if (a == "") matrix[n] = 0; else matrix[n] = 1; 
              if (ic != matrix[n]) toChange = 1;
              n++;
            }
            if(toChange){
              toClear = 0;
              toSave = 0;
              toReset = 0;
              toDetect = 0;
              toLearn = 0;
            }
          }
        }
        //Aufbau des Feldes
        String v; body = s1; n = 0;
        for(int x=0; x < tableHeight; x++){
          body += s2;
          for(int j=0; j < tableWidth; j++){ 
            if (matrix[n]) v = fillChar; else v = "";
            body += s3 + String(n) + s3_1 + v + s3_2;
            n++;
          }
          body += s4;
        }
        body += s4+s5+s5_0+s5_1;
        if (toLearn) body += bColorActiv;
        body += s5_1n+s5_2;
        if (toDetect) body += bColorActiv;
        body += s5_2n+s5_3+s5_4;
        //Senden der Seite an den Browser
        server.send(200, "text/html", body);
       }
      );
      //-----------------------------------------------------
    
    
    
      //-----------------------------------------------------
      //Webserver starten
      //-----------------------------------------------------
      server.begin();
      Serial.println("Web server started!");
    
    }
    
    
    uint32_t timestamp=0, sec=0;
    uint8_t modeLearn=0, modeDetect=0;
    
    void loop() {  
      server.handleClient();
      // Aktionen nach ButtonClick:
      /*
      if(toClear) {
        Serial.println((String)"toClear="+toClear);
        memset(matrix , 0, sizeof(matrix));
        toClear=0;
      }
      */
      if (toChange) {
        Serial.println("new data:");
        for (int i = 0; i < 100; i++) {
           bufferArray[i] = (float)matrix[i];
           Serial.println((String)i + ": " + bufferArray[i]);
        }
        toChange=0;
      }
      if(toLearn){       
        modeLearn=1;
        modeDetect=0;
        Serial.println((String)"modeLearn="+modeLearn);
        toLearn=0; 
      }
      if(toDetect) {      
        modeLearn=0;
        modeDetect=1;
        Serial.println((String)"modeDetect="+modeDetect);
        toDetect=0;  
      }
      if(toReset) {
        toLearn=0;
        toDetect=1;
        Serial.println((String)"toReset="+toReset);
        toReset=0;
      }
      if(toSave) {
        toLearn=0;
        toDetect=1;
        Serial.println((String)"toSave="+toSave);
        toSave=0;
      }
      if(millis()-timestamp >= 1000) {
        sec++;
        timestamp +=1000;
        Serial.println(sec);
      }
    }
    Geändert von HaWe (09.11.2019 um 23:29 Uhr)

  3. #43
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Irgendwas ist schief gegangen. Muss noch mal gucken.

    Noch mal:

    Wenn das Muster geändert wird und es wird mit Change:Ok übertragen, dann werden die Farben der Buttons zurückgesetzt.
    Wenn das Muster gelöscht wird, passiert das, was bei Änderung geschieht, Learn und Detect müssen dann neu aktiviert werden.
    Nicht so?

    Soll der Status immer stehen bleiben, für isLearn, isDetect und isSave, sowie isReset?
    Dann musst Du Dich um den Status dieser Buttons selber kümmern, denn irgendwann muss der wieder zurückgesetzt werden (wenn irgendein Button geklickt wird, werden die andern auch zurückgesetzt).
    Geändert von Moppi (01.11.2019 um 16:58 Uhr)

  4. #44
    HaWe
    Gast
    Status muss nur für Detect und Learn gesetzt bleiben, je nachdem, was zuletzt geklickt wurde und wie es auch vom Programm selber geändert wurde (z.B. bei Save erfolgt immer zuerst ein Wechsel zu modeDetect, das selbe bei Reset)

    Auch automatisierte NN-Routinen können später den Learn/Detect-Mode zwischendurch ändern.

    Jede Änderung wird aber immer bei
    modeDetect
    modeLearn
    im Programm aktualisiert.

    Von sich aus dürfen andere Button-Clicks den Detect/Learn-Status nicht ändern, also auch nicht die Farbe der Learn/Detect-Buttons.


    die Farbe aller anderen Buttons ist unwichtig, hier bleibt nichts gespeichert, sie sollen also immer grau bleiben.

    - - - Aktualisiert - - -

    die Variablen heißen jetzt auch anders:

    toSave,
    toDetect,
    toClear,
    ...


    daher bitte jetzt bei meinem eigenen Code verbessern!
    Geändert von HaWe (01.11.2019 um 17:16 Uhr)

  5. #45
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich habe Deinen Code geändert, aber nicht ausprobiert:

    Code:
    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>
    
    
    // Version 0.0.3
    
    
    
    
    const char* ssid = "WLAN";
    const char* password = "0.0.3";
    
    
    ESP8266WebServer server(80);
    
    
      //-----------------------------------------------------
      //HTML und Daten für das Eingabe-/Ausgabefeld
      //einfügen im globalen Scope
      //-----------------------------------------------------
      //erstellt von (c): Moppi    @roboternetz.de
      //-----------------------------------------------------
      //Hintergrundfarbe Buttons, wenn aktiv
        const String bColorActiv = "red";
      //Breite und Höhe des ges. Feldes
        const int tableWidth = 10;
        const int tableHeight = 10;
      //Füllzeichen für Felder
        const String fillChar = "X";
      //Parameter-Array enthält den Status aller Felder
      //der Ein-/Ausgabematrix (0= AUS, 1= AN)
        bool matrix[tableHeight*tableWidth]={0};
      //Status, ob Änderungen vorliegen
        bool toChange = 0;
        bool toLearn = 0;
        bool toDetect = 0;
        bool toReset = 0;
        bool toSave = 0;
        bool toClear = 0;
      //HTML
        String body = "";
        String s1="<style>\nform{margin:0}\n#un{width:0;height:0;visibility:hidden}\n#bu{width:10em;height:2em;}\n#rw{display:table-row;}\n#ce{display:table-cell;}\n#ip{width:1.5em;text-align:center;font-weight:bold}\n</style>\n<script>dge=document.getElementById; function oc(ob){if(ob.value=='')ob.value='"+fillChar+"';else ob.value='';}</script>\n<div role=\"presentation\" style=\"display:table\"><div id='rw'><div id='ce' style=\"padding-right:1em\"><form method=\"get\"><div role=\"presentation\" style=\"margin-bottom:1em;display:table\">";
        String s2="<div id=\"rw\">";
        String s3="<div id=\"ce\"><input onclick=\"oc(this);\" type=\"text\" name=\"b";
        String s3_1="\" value=\"";
        String s3_2="\" maxlength=\"1\" id=\"ip\"></div>";
        String s4="</div>";
        String s5="</div><div id='ce'><input id=\"bu\" type=\"submit\" value=\"Change:Ok\"><p></form>";
        String s5_0="<form method=\"get\"><input id=\"bu\" type=\"submit\" value=\"Clear\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"clear\"></form>"; 
        String s5_1="<form method=\"get\"><input id=\"bu\" style=\"background-color:";
        String s5_1n="\" type=\"submit\" value=\"Learn\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"learn\"></form>";
        String s5_2="<form method=\"get\"><input id=\"bu\" style=\"background-color:";
        String s5_2n="\" type=\"submit\" value=\"Detect\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"detect\"></form>";
        String s5_3="<form method=\"get\"><input id=\"bu\" type=\"submit\" value=\"Reset\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"reset\"></form>";
        String s5_4="<form method=\"get\"><input id=\"bu\" type=\"submit\" value=\"Save\"><input id=\"un\" type=\"text\" name=\"bn\" value=\"save\"></form></div></div></div>";
        
        String par="b";
      //-----------------------------------------------------
    
    
    
    
    float bufferArray[100];
    
    
    void setup(void) {
    
    
      Serial.begin(115200);
      delay(1000);
      Serial.println();
    
    
      //-----------------------------------------------------
      //Anmeldung am Netzwerk
      //-----------------------------------------------------
      Serial.println("connecting by IPAddress(192,168,2,99)");
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password); //begin WiFi connection
      WiFi.config(IPAddress(192, 168, 2, 99), IPAddress(192, 168, 2, 1), IPAddress(192, 168, 2, 1), IPAddress(255, 255, 255, 0));
    
    
      Serial.println("");
    
    
      // Wait for connection
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.print("Connected to ");
      Serial.println(ssid);
      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
    
    
    
    
      //-----------------------------------------------------
      //Auswertung und Erstellung des Ein-/Ausgabefeldes
      //-----------------------------------------------------
      //Einbinden in setup() und in loop() nutzen durch
      //Aufruf von "server.handleClient();"
      //benötigt Objekt "server", erstellt im globalen Scope
      //mittels:       ESP8266WebServer server(80);
      //benötigt auch: #include <ESP8266WebServer.h>
      //-----------------------------------------------------
      //erstellt von (c): Moppi    @roboternetz.de
      //-----------------------------------------------------
      server.on("/",[]()
       {
        //Auswerten des Query-String vom Browser
        int n = 0; 
        if(server.hasArg("bn")){
          if(server.arg("bn") == "clear") {toClear=1; for(int i=0; i<(tableWidth*tableHeight); i++) matrix[i] = 0;} else {toClear=0; toChange=0;}
          if(server.arg("bn") == "save") toSave=1; else toSave=0;
          if(server.arg("bn") == "reset") toReset=1; else toReset=0;
          if(server.arg("bn") == "detect") toDetect=1; // else toDetect=0;
          if(server.arg("bn") == "learn") toLearn=1; // else toLearn=0;
        }
        for(int x=0; x < tableHeight; x++){
          for(int j=0; j < tableWidth; j++){
            if(server.hasArg(par+String(n))){
              String a = server.arg(par+String(n));
              bool ic = matrix[n];
              if (a == "") matrix[n] = 0; else matrix[n] = 1; 
              if (ic != matrix[n]) toChange = 1;
              n++;
            }
      /*      //Status aller Buttons zurücksetzen, wenn das Muster mit Change:Ok geändert wurde
              if(toChange){
              toClear = 0;
              toSave = 0;
              toReset = 0;
              toDetect = 0;
              toLearn = 0;
            }
    */      
          }
        }
        //Aufbau des Feldes
        String v; body = s1; n = 0;
        for(int x=0; x < tableHeight; x++){
          body += s2;
          for(int j=0; j < tableWidth; j++){ 
            if (matrix[n]) v = fillChar; else v = "";
            body += s3 + String(n) + s3_1 + v + s3_2;
            n++;
          }
          body += s4;
        }
        body += s4+s5+s5_0+s5_1;
        if (toLearn) body += bColorActiv;
        body += s5_1n+s5_2;
        if (toDetect) body += bColorActiv;
        body += s5_2n+s5_3+s5_4;
        //Senden der Seite an den Browser
        server.send(200, "text/html", body);
       }
      );
      //-----------------------------------------------------
    
    
    
    
    
    
      //-----------------------------------------------------
      //Webserver starten
      //-----------------------------------------------------
      server.begin();
      Serial.println("Web server started!");
    
    
    }
    
    
    
    
    uint32_t timestamp=0, sec=0;
    uint8_t modeLearn=0, modeDetect=0;
    
    
    void loop(void) {  
      server.handleClient();
      // Aktionen nach ButtonClick:
      /*
      if(toClear) {
        Serial.println((String)"toClear="+toClear);
        memset(matrix , 0, sizeof(matrix));
        toClear=0;
      }
      */
      if (toChange) {
        Serial.println("new data:");
        for (int i = 0; i < 100; i++) {
           bufferArray[i] = (float)matrix[i];
           Serial.println((String)i + ": " + bufferArray[i]);
        }
        toChange=0;
      }
      if(toLearn){       
        modeLearn=1;
        modeDetect=0;
        Serial.println((String)"modeLearn="+modeLearn);
        toLearn=0; 
      }
      else 
      if(toDetect) {      
        modeLearn=0;
        modeDetect=1;
        Serial.println((String)"modeDetect="+modeDetect);
        toDetect=0;  
      }
      if(toReset) {
        toLearn=0;
        toDetect=1;
        Serial.println((String)"toReset="+toReset);
        toReset=0;
      }
      if(toSave) {
        toLearn=0;
        toDetect=1;
        Serial.println((String)"toSave="+toSave);
        toSave=0;
      }
      if(millis()-timestamp >= 1000) {
        sec++;
        timestamp +=1000;
        Serial.println(sec);
      }
    }
    Ich habe das hier nochmal, wie es bei mir funktionierte:
    KeyPadSource6.zip


    Teile des Programms sind auskommentiert, also nicht entfernt, falls man die Funktion doch wieder ändern will.
    Ich habe weitestgehend Verständnis, für die Änderungen. Aber irgendwann blicke ich dann durch meinen eigenen Code nicht mehr durch,
    weil Du Änderungen drin vornimmst.



    MfG
    Geändert von Moppi (01.11.2019 um 17:24 Uhr)

  6. #46
    HaWe
    Gast
    leider nein,
    wenn das Programm den mode ändert (z.B. bei Reset), dann wird dir Learn-/Detect-Buttonfarbe nicht aktualisiert, sondern grau gemacht.
    und wenn man Clear drückt, und dann auf OK, dann wird das komplett gelöschte Feld nicht übertragen, sondern das alte, vorherige.


    Aber auch nach OK wird immer noch die Farbe von Detect/Learn auf grau zurückgesetzt, das darf auch nicht sein, denn hier werden Learn/Detect-Status ja überhaupt nicht geändert.

    Und bitte keine zip-Anhänge!!


    Teste es mal selber aus!
    Man erkennt es am einfachsten, wenn man die letzten untersten Felder verändert.

    Im Serial Monitor werden die Buttonclicks auch angezeigt,
    dann das aktuell übertragene Keypad-Feld
    und ebenfalls der jew. aktuelle, neu gesetzte Learn/Detect-Mode.


    mein ursprünglicher Button-Clear Code ist übrigens inzwischen auskommentiert., daher wird Button Clear-Click nicht mehr seriell angezeigt
    - vlt kannst du es für deine Änderungen wider mit verwenden:
    Code:
    /*
      if(toClear) {
        Serial.println((String)"toClear="+toClear);
        memset(matrix , 0, sizeof(matrix));
        toClear=0;
      }
      */


    - - - Aktualisiert - - -
    Deine Version im Anhang hat nicht meine Änderungen mit übernommen, ich kann es jetzt nicht mehr genau so laufen lassen.
    Bitte verwende immer meine Änderungen mit und verändere bitte immer nur meinen geposteten Code samt Versions-Nummer, sonst kommt alles durcheinander!

    Insb. die loop solltest du immer mit verwenden, denn hier läuft der Serial Monitor zum Debuggen, aber auch in setup ist was geändert, und zusätzlich gibt es weitere Variablen.

    Der Code wächst ja immer weiter...

    Wenn du nicht mehr durchblickst, starte nochmal bei Version 0.0.2
    https://www.roboternetz.de/community...l=1#post655984
    Geändert von HaWe (09.11.2019 um 23:30 Uhr)

  7. #47
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Zitat Zitat von HaWe Beitrag anzeigen
    Wenn du nicht mehr durchblickst, starte nochmal bei Version 0.0.2
    https://www.roboternetz.de/community...l=1#post655984

    Neeee, das ist keine gute Idee! *lol*

    Also ich programmier ja quasi ein Modul, das hat eine Schnittstelle.
    Die kannst Du gerne benutzen, aber nicht den internen Code des Moduls umschreiben!

    Für mich ist im Modul wichtig, dass isChange auch isChange bedeutet. Das kann ich zwar toChange ändern, aber nach dieser definition dürfte sich dann in meinem Modul der Pufferinhalt (matrix) nicht ändern.
    Ich spiegele den Status wieder, nicht das, was außerhalb des Moduls damit mal passieren soll.
    Aber ich wollte diesmal nicht so sein, drum hab ich es so geändert, wie Du es Dir vorstellst, obwohl Du den Modulcode nicht schreibst - sonst brauch ich das ja nicht machen.

    Ich schau nochmal rein....

    Ich orientiere mich jetzt mal daran, was Du geschrieben hast:
    wenn das Programm den mode ändert (z.B. bei Reset), dann wird dir Learn-/Detect-Buttonfarbe nicht aktualisiert, sondern grau gemacht.
    und wenn man Clear drückt, und dann auf OK, dann wird das komplett gelöschte Feld nicht übertragen, sondern das alte, vorherige.

    Aber auch nach OK wird immer noch die Farbe von Detect/Learn auf grau zurückgesetzt, das darf auch nicht sein, denn hier werden Learn/Detect-Status ja überhaupt nicht geändert.

    wenn das Programm den mode ändert (z.B. bei Reset), dann wird dir Learn-/Detect-Buttonfarbe nicht aktualisiert, sondern grau gemacht

    aktueller Status bei mir:
    LEARN und DETECT bleiben immer Rot, egal, was passiert / gedrückt wird
    .
    .
    .
    und wenn man Clear drückt, und dann auf OK, dann wird das komplett gelöschte Feld nicht übertragen, sondern das alte, vorherige

    aktueller Status bei mir:
    Das Feld wird gelöscht und bleibt gelöscht.





    Falls es da Mißverständnisse gibt, kann ich ein Video machen (zwar schwierig alleine, aber vielleicht bekomme ich es hin) zum Anschauen.

    Hat geklappt, hier das Video
    https://youtu.be/yWqrUk5nDK4


    MfG

    .
    Geändert von Moppi (01.11.2019 um 19:41 Uhr)

  8. #48
    HaWe
    Gast
    ich habe ja dein Modul verwendet, aber auch mein Code außen rum ändert sich mit, nachdem du dein Modul angepasst hast.
    es muss also immer alles per Handshake gehen:
    deine Änderungen
    meine neuen Änderungen
    deine Änderungen meiner neuen Änderungen
    ....
    usw.

    auch setup und loop samt Variablen und Zusatzfunktionen werden ja ebenfalls weiterentwickelt.
    Nur eine Kleinigkeit: aber z.B. in setup() sollte Serial als erstes gestartet werden, danach delay(1000), damit man auch WLAN und webserver seriell debuggen kann.

    Am besten, du passt bei deinen Änderungen dann auch die Versionsnummer an.

    - - - Aktualisiert - - -

    PS,
    bitte ändere nicht deine oberen Posts, wenn ich bereits darauf geantwortet habe, denn ich lese normalerweise oben nicht mehr nach.

    das mit den zip Files macht auch keinen Sinn, bitte immer "Klartext"-Code.
    der letzte Klartext-Code, den ich verwenden konnte, war der hier
    https://www.roboternetz.de/community...l=1#post656003

    allerdings sollte er Versionsnummer 0.0.4 tragen nach deinen Änderungen.
    Er war aber noch fehlerhaft, wie beschrieben.

    Videos bringen nichts, das kann ich nicht recht erkennen.

    - - - Aktualisiert - - -



    PPS,
    Ergänzung, nach deiner Änderung:






    mein Programm ändert (auch) intern den Lern/Detect-Modus, ohne dass ein Button gedrückt wurde.
    Auch dann muss es das Panel erkennen und den neuen Modus rot kennzeichnen.
    Geändert von HaWe (01.11.2019 um 19:12 Uhr)

  9. #49
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich sehe nicht, ob Du schon geantwortet hast. Kannst ja auch mal 15min warten, ob sich mein Beitrag noch ändert.
    Leider fallen immer wieder noch mehr Sachen ein, wenn ich eigentlich schon fertig geschrieben habe.




    MfG

    - - - Aktualisiert - - -

    Bevor wir jetzt weiter machen, warte ich, bis das Video hoch geladen ist, dauert noch ca. 25min.
    Dann kannst Du mal schauen, und wir können uns verständigen. Gerne auch dann mit Angabe der Position (mm:sec) im Video.




    MfG

    - - - Aktualisiert - - -

    Was die Änderungen und das Weiterentwickeln angeht:
    Ich habe den Code extra optisch gekapselt, dass man die Module erkennt und einfach austauschen kann.
    Ich wollte mir das Drama jetzt mit den LIBs "*.h" etc. ersparen, weil ich darin noch ungeübt bin.
    Daher sollte es einfach sein, auch in einem riesigen Quelltext, diese beiden Sachen zu finden und auszutauschen.
    Da muss man nicht jedesmal den gesamten Quelltext über's Forum schicken - dachte ich mir so.

  10. #50
    HaWe
    Gast
    ich kann nicht deine Änderungen in meinen Code einarbeiten, wenn du meine vorherigen Änderungen nicht ebenfalls mit übernommen hast.
    Es sind oft vielfältige Änderungen, hier und da.

    bitte auch nicht einen Post nachträglich ändern, sondern zusätzlich antworten.

    - - - Aktualisiert - - -

    drücke mal die "Learn" Taste: Learn wird rot, das stimmt;
    und dann die "Save" Taste
    und schau, ob sich die Farbe von Learn und Detect Button ändern
    Das müssen sie nämlich (Detect->rot und Learn->grau)

    das selbe bei Reset.


    guck bitte auch warum: nämlich was da in loop() und im Serial Monitor passiert.

    - - - Aktualisiert - - -


    ich beziehe mich auf Klartext-Code in https://www.roboternetz.de/community...l=1#post656003
    (bei dir Version 0.0.3, eigentlich aber Version 0.0.4)

Seite 5 von 9 ErsteErste ... 34567 ... LetzteLetzte

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 20.03.2019, 14:40
  2. html code für User Login + password (esp8266 + Arduino IDE)
    Von HaWe im Forum NodeMCU-Board und ESP8266, ESP32-Serie
    Antworten: 35
    Letzter Beitrag: 19.08.2018, 20:10
  3. html-Code für nodeMCU mit Arduino IDE + Wifi libs
    Von HaWe im Forum Arduino -Plattform
    Antworten: 7
    Letzter Beitrag: 14.08.2018, 19:30
  4. HTML-Code (scripts)
    Von Technik =) im Forum Umfragen
    Antworten: 6
    Letzter Beitrag: 10.10.2008, 10:21
  5. virtuelles Autocockpit
    Von redg im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 6
    Letzter Beitrag: 02.10.2005, 14:53

Berechtigungen

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

LiFePO4 Speicher Test