Eine Instanz dieser Klasse wird jeder Eventfunktion übergeben, welche mit .reg_event(…, as_thread=True) oder .reg_timerevent(…, as_thread=True) für IOs registriert wurde.
revpimodio2.helper.EventCallback()
Wenn Eventfunktionen für die Eventüberwachung angelegt werden, müssen diese einen Übergabeparameter akzeptieren! In diesem Beispiel heißt er eventcallback
, kann aber auch ecb
oder andere kurze Namen haben.
def meine_funktion(eventcallback): # Name des IO, der das Event auslöste eventcallback.ioname # Wert des IO, zum Auslösezeitpunkt eventcallback.iovalue # Einfaches 3 Sekunden Warten, ohne Programmblockierung eventcallback.exit.wait(3)
Klassenattribute
.ioname
Gibt den Namen des IOs zurück, der das Event ausgelöst hat.
.iovalue
Gibt den Wert des IOs zum Auslösezeitpunkt zurück.
Klassenfunktionen
.exit.wait(sekunden)
Wartet die angegebene Zeit in Sekunden, bevor die Ausführung, mit Rückgabewert False
, fortgesetzt wird. Wenn vor Ablaufen der Zeit die .stop() Funktion aufgerufen wird, wird das Warten sofort, mit Rückgabewert True
, beendet!
HINWEIS: Im Gegensatz zu time.sleep(sekunden)
, kann durch die Verwendung von .exit.wait(sekunden)
die Ausführung mit Aufruf von .stop()
abgebrochen werden. Durch den Rückgabewert False
(volle Zeit gewartet) oder True
(Abgebrochen) kann der Verlauf der Funktion zudem noch gesteuert werden!
.exit.is_set()
Gibt True
zurück, wenn für das EventCallback die .stop()
Funktion aufgerufen wurde. Dies dient für den globalen Abbruch der Ausführung.
.stop()
Setzt den Wert von .exit.is_set()
auf True
, und bricht alle .exit.wait(sekunden)
Vorgänge ab, die dann True
als Rückgabewert geben. Mit Dieser Methode können zum Beispiel Schleifen sauber verlassen werden.
Beispiel: Bennis Run – Threads im mainloop()