Hallo,
ich suche eine Funktion für die Zeitüberwachung (Timeout) für eine Bewegungsüberwachung.
Antrieb starten
Zeitüberwachung starten
wenn Position erreicht: Antrieb stopp, Zeitüberwachung stopp
wenn Zeitüberwachung erreicht:Fehler, Antrieb stopp
MfG
Juergen B.
Funktion zur Zeitüberwachung gesucht
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
from treading import Timer
t = Timer(sometime,alarm_function)
und dann
t.start() oder t.cancel()
Aber Achtung, das ist ein eigener Thread. Da mußt Du durch entsprechenden lock dafür sorgen, daß nicht zwei Threads zur gleichen Zeit auf dasselbe zugreifen oder den Timer zuvor ausschalten
t = Timer(sometime,alarm_function)
und dann
t.start() oder t.cancel()
Aber Achtung, das ist ein eigener Thread. Da mußt Du durch entsprechenden lock dafür sorgen, daß nicht zwei Threads zur gleichen Zeit auf dasselbe zugreifen oder den Timer zuvor ausschalten
Hallo,
vielen Dank für den Hinweis.
Also mit "t.start()" kann ich die Überwachung starten.
Aber mit "t.cancel()" kann ich die Überwachung nicht stoppen, ich erhalte die Meldung "AttributeError: 'Thread' object has no attribute 'cancel'.
Wie kann ich den Timer stoppen ?
MfG
Juergen B.
vielen Dank für den Hinweis.
Also mit "t.start()" kann ich die Überwachung starten.
Aber mit "t.cancel()" kann ich die Überwachung nicht stoppen, ich erhalte die Meldung "AttributeError: 'Thread' object has no attribute 'cancel'.
Wie kann ich den Timer stoppen ?
MfG
Juergen B.
@jbaben: Den `Timer` kannst Du mit `cancel()` abbrechen. Dazu musst Du aber auch einen `Timer` starten und keinen `Thread`.
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
@jbaben: natürlich kannst Du den Timer stoppen. Aber wenn er bereits zugeschlagen hat, dann ist es zu spät!