Klasse EventCallback

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()