M5Dial
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Diese Seite beschreibt meine Erfahrungen mit dem M5Dial.
Es ist kein RGB-Device vorhanden, obwohl es sich in der IDE dazu laden lässt.
Die Hardware[Bearbeiten | Quelltext bearbeiten]
Inhalt:[Bearbeiten | Quelltext bearbeiten]
Die drei Eingabegeräte gemeinsam abfragen[Bearbeiten | Quelltext bearbeiten]
In der Praxis wird es wenig hilfreich sein, wenn der Encoder und der Touchscreen nur nacheinander abgefragt werden kann. So wird z.B. ein Wert mit dem Encoder eingestellt und dann soll er mit einem Touchbutton übernommen oder wieder gelöscht werden. Dazu müssen beide Eingabegeräte quasi parallel abgefragt werden.
Feststellen, ob eines der Geräte aktiviert wurde[Bearbeiten | Quelltext bearbeiten]
Der folgende Code aktualisiert den Zustand der 3 Geräte und testet, welche aktiviert wurden:
M5.update() if rotary.get_rotary_status(): pass if M5.Touch.getCount(): pass if BtnA.isPressed(): pass
Auf die Aktivierung reagieren[Bearbeiten | Quelltext bearbeiten]
Wenn die pass-Anweisung durch eine entsprechende Funktion ersetzt wird, kann die Eingabe auch gleich bearbeitet werden.
Rückgabewert zuordnen[Bearbeiten | Quelltext bearbeiten]
Wenn auf die Eingabe reagiert wurde muss ggf. ein Wert zurück gegeben werden. Dabei muss klar sein, von welchem Gerät dieser Wert kommt, damit er richtig verarbeitet werden kann. Dazu kann ggf. eine Liste zurückgegeben werden, die alle drei Ergebnisse enthält:
return_list = [None, None, None] M5.update() if rotary.get_rotary_status(): return_list[0] = rotary_service_routine() if M5.Touch.getCount(): return_list[1] = touch_service_routine() if BtnA.isPressed(): return_list[2] = btna_service_routine() return return_list
Hier eine komplette Beispiel-Funktion:
def get_triple(): return_list = [None, None, None] M5.update() if rotary.get_rotary_status(): return_list[0] = rotary_service_routine() if M5.Touch.getCount(): return_list[1] = touch_service_routine() if BtnA.isPressed(): return_list[2] = btna_service_routine() return return_list