dann ist das isChange für die Matrix also etwas anderes als das isChange für den Change:OK Button?
Oder hat der isCahnge-Button gar keine isChange Variable?
dann ist das isChange für die Matrix also etwas anderes als das isChange für den Change:OK Button?
Oder hat der isCahnge-Button gar keine isChange Variable?
Dieser Button sendet schon immer das, was der User in der Matrix eingeben kann (also die Kreuzchen setzen). User setzt seine Kreuzchen und klickt den Button zum Versenden der Daten.
Beim ersten Mal stimmt das daher mit dem Buttonstatus überein.
Aber:
User klickt auf den Button, aus irgendeinem Grund auch zweimal hintereinander oder dreimal. Das wird dann abgefangen.
MfG
- - - Aktualisiert - - -
Warum der Change:Ok heißt, habe ich nie erklärt bekommen. Solche Buttons kenne ich nicht und so eine Bezeichnung ist auch vollkommen unüblich.
Falls Du damit verschiedene Sachen zum Ausdruck bringen willst, muss man mal schauen... Vielleicht muss man das dann auch auf zwei Buttons aufteilen "change" und "ok"
aha, dann müsste man wschl aber eher für die Events "Left-Click in die Matrix" und "Left-Click auf Change:OK-Button" verschiedene Signal-Variablen verwenden.
- - - Aktualisiert - - -
PS,
der "Change: OK" Button hieß früher nur "OK", das war aber missverständlich.
Was er machen soll:
Der Button soll signalisieren, dass man mit dem Herumklicken in der Matrix fertig ist und der aktuelle Zustand mit den jetzt zuletzt gemachten Änderungen übermittelt und dann weiter verarbeitet werden soll.
Alle vorherigen Klicks und Änderungen in der Matrix (inkl. "Clear"-Buttonclick) sind für das NN Programm eigentlich völlig unwichtig, sie müssen nur in der Matrix sichtbar sein ("X" oder " ");
das ist aber nur für den Benutzer wichtig, damit er sieht, was er bisher so gemacht hat, nicht aber fürs NN-Programm.
Erst nach "Change: OK"
(noch besser: "Matrix: submit")
sollen die Matrix-Daten ans NN-Programm gesendet und dann vom NN Programm in der loop() weiter verarbeitet werden.
Geändert von HaWe (09.11.2019 um 11:43 Uhr)
Ja das ist Sinn und Zweck dieses Buttons gewesen. Wenn Änderungen der Matrix beim nodeMCU ankommen wird dies in "isChange" mit "1" markiert. Sind keine Änderungen da, wird das mit mit "0" markiert.Der Button soll signalisieren, dass man mit dem Herumklicken in der Matrix fertig ist und der aktuelle Zustand mit den jetzt zuletzt gemachten Änderungen übermittelt und dann weiter verarbeitet werden soll.
Daher kannst Du in Deinem Programm z.B. auch schreiben: bool toChange = isChange;
Ich habe es mal geändert, dass es zwei Variablen gibt: ChangeOk und ChangeM
neue Version: KeyPad20191109-1.zip
ChangeOk ist immer "1", wenn Daten mit diesem Button übermittelt wurden.
ChangeM ist nur "1", wenn die Daten der Matrix vom User auch geändert wurden.
Geändert von Moppi (09.11.2019 um 11:49 Uhr)
Lesezeichen