- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 90

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    das mit bool oder char ist egal, wenn es sich um die Daten auf dem Server handelt.
    Übertragen auf andere float-Arrays oder Matrizen muss ich es eh, weil nur die ersten 9 Zeilen (90 Werte) vom html-keypad für die Inputs sind und die 10. Zeile (10 Werte) für Ziel-Outputs, das muss man evtl auch flexibel anpassen (ggf. 8 Zeilen + 2 Zeilen etc.).
    Ein NN rechnet aber grundsätzlich mit floats, nicht mit int, char oder bit.

    Ich muss es nur zunächst übertragen auf lineare Arrays, aber nur dann, wenn Daten auch neu verfügbar sind (OK/senden-Button auf der website frisch gedrückt).

    Ein bool Datentyp benötigt ja übrigens auch denselben Speicherplatz bei C/C++ ( stdbool.h ) wie ein char oder byte.
    http://www.mrknowing.com/2013/10/08/...eichergroesse/

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ein bool Datentyp benötigt ja übrigens auch denselben Speicherplatz bei C/C++ ( stdbool.h ) wie ein char oder byte.
    Habe ich nicht mit gerechnet. Dann sag noch mal, was Du für einen Datentyp brauchst, dann sparen wir die Umwandlung.

    Ich muss es nur zunächst übertragen auf lineare Arrays, aber nur dann, wenn Daten auch neu verfügbar sind (OK/senden-Button auf der website frisch gedrückt).
    Ich habe eine Variable (bool isChange) eingebaut, zum Abfragen nach server.handleClient();

    KeyPadSource.zip

    MfG

  3. #3
    HaWe
    Gast
    Auf der website fürs 10x10 keypad ist signed char oder bool ok.

    (float oder double wäre hier übertrieben und wirklich ein Speicherfresser)

    Die 100 website-keys müssen zeilenweise als Array durchgezählt sein von 0...99, nicht Reihe/Spalte.
    Code:
     0  1  2  3  4  5  6  7  8  9 
    10 11 12 13 14 15 16 17 18 19
    20 21 22 23 24 25 26 27 28 29
    ...
    Die Übertragung muss dann zunächst so erfolgen (verkürzt, die echte Umwandlung ist etwas komplizierter und die mache ich später selber):
    Code:
    float bufferArray[100];  // global
    //...
    // Kopieren sobald neue Daten verfügbar:
       for (int i=0; i<100; i++} { bufferArray[i]=(float)websiteKey[i]; }
    ich komme aber mit dem Reinkopieren des neuen Schnipsels nicht klar.
    Kannst du bitte den vollständigen, kompletten Code posten?
    Am besten als Code in Code-Tags, kein zip-Anhang
    Geändert von HaWe (31.10.2019 um 19:56 Uhr)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Zitat Zitat von HaWe Beitrag anzeigen
    Die 100 website-keys müssen zeilenweise als Array durchgezählt sein von 0...99, nicht Reihe/Spalte.
    Sind sie.


    Zitat Zitat von HaWe Beitrag anzeigen
    ich komme aber mit dem Reinkopieren des neuen Schnipsels nicht klar.
    Kannst du bitte den vollständigen, kompletten Code posten?

    KeyPadSource1.zip



    Auf neue Daten prüfen
    if (isChange) ...


    Kopieren sobald neue Daten verfügbar
    for (int i=0; i<100; i++} { bufferArray[i]=(float)matrix[i]; }






    MfG


    PS:
    Benutze lieber ZIPs, weil der Thread so leserlicher bleibt.
    Ich habe im Thread nochmal etwas gelesen, ob noch irgendwas in den Code eingebaut werden soll, was ich übersehen habe.
    Für das nodeMCU hatte ich ein kleines Projekt geplant. Aus diesem Grund kam ich überhaupt auf das Tastenfeld per HTML.
    Du musst schauen, ob es so praktikabel ist, wenn nicht, dann nicht. Alle meine Projekte beginnen so, dass ich mit unbekannten
    Dingen beginne oder mit denen, die am schwierigsten sein könnten; um frühzeitig ein Scheitern zu erkennen und dann abzubrechen.
    Wenn Du das lieber anders lösen möchtest, als mit einer HTML-Seite, habe ich damit also keinerlei Problem. Alles i.O.
    Geändert von Moppi (01.11.2019 um 06:57 Uhr)

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

    Code:
    float bufferArray[100];
    
    uint32_t timestamp=0, sec=0;
    
    
    void loop(void) {  
      server.handleClient();
      // Kopieren sobald neue Daten verfügbar:
      if (isChange) {
        Serial.println("new data:");
        for (int i = 0; i < 100; i++) {
           bufferArray[i] = (float)matrix[i];
           Serial.println((String)i + ": " + bufferArray[i]);
        }
        isChange=0;
      }
      if(millis()-timestamp >= 1000) {
        sec++;
        timestamp=millis();
        Serial.println(sec);
      }
    }
    OK in Change:OK umbenannt.

    wie kann man jetzt (edit: ) 5 weitere Buttons hinzufügen, in dieser Reihenfolge
    Clear

    Learn
    Detect

    (Change:OK)

    Reset
    Save

    wenn einer gedrückt wurde, soll er ebenfalls seinen Status senden, wie Change:OK:

    isClear
    isLearn
    isDetect
    (isChange)
    isReset
    isSave

    das will ich dann versuchen für eine Statemachine zu nutzen.

    - - - Aktualisiert - - -

    edit, 5 weitere Buttons
    Geändert von HaWe (09.11.2019 um 22:28 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Du hattest das mit den Radio-Buttons schon mal angeführt. Das wäre eine Möglichkeit.

    Das Feld könnte man so gestalten, nur am Ende einen Senden-Button, um die Daten der Form zu übertragen:

    [ ] Learn

    [ ] Detect
    [ ] Reset
    [*] Change
    [ ] Save

    ( Senden )


    Leider ist mir die Bedeutung von der Bezeichnung "Change:Ok" nicht klar, also was das genau ausdrücken soll.




    MfG


  7. #7
    HaWe
    Gast
    Change:OK ist nur der neue Name des Buttons für (bisher) OK
    s5 = "<input type="submit" value="Change: OK" style="width:14.9em;height:2em"></form>";

    Clear

    Detect <-> Learn

    (Change:OK)

    Reset
    Save

    "Change: OK" ist nur ein Arbeits-Name, könnte man auch "submit" oder "Change: submit" nennen.

    Radio Buttons gehen nur für Learn/Detect
    die anderen müssten eigene Buttons sein, die man wahlweise drücken kann.

    späterer Zweck:
    Clear soll einfach nur alle Keypad Felder der Website auf 0 zurücksetzen (so als hätte man die einzelnen X nochmal angeklickt) , ohne dass es neu gelernt oder erkannt wird (löschen aller bisherigen X)
    Reset soll später alle bisherigen Lernschritte komplett löschen (mit Sicherheitsabfrage)
    Save soll das bisher gelernte auf SD speichern (mit Sicherheitsabfrage)
    (Load automatisch bei Programm-Neustart von SD)

    - - - Aktualisiert - - -

    PS, edit:
    Radiobuttons für Detect/Learn könnten bei Umschalten z.B. entweder isLearn=1 oder isDetect=1 zurückliefern
    (default wird sein: isLearn=0 und isDetect=1)
    Learn schaltet in Lern-Mode
    Detect in den Erkennungs-Mode
    (evt. kann man das auch anders lösen, wie Radiobuttons funktionieren und was sie zurückgeben weiß ich ja auch noch gar nicht)
    Geändert von HaWe (01.11.2019 um 10:50 Uhr)

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 20.03.2019, 13: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, 19: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, 18:30
  4. HTML-Code (scripts)
    Von Technik =) im Forum Umfragen
    Antworten: 6
    Letzter Beitrag: 10.10.2008, 09:21
  5. virtuelles Autocockpit
    Von redg im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 6
    Letzter Beitrag: 02.10.2005, 13:53

Berechtigungen

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

Labornetzteil AliExpress