Funktion zur Zeitüberwachung gesucht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jbaben
User
Beiträge: 24
Registriert: Dienstag 12. Januar 2016, 16:05

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.

:?:
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mit welcher Bibliothek arbeitest du dabei? Oftmals bieten die schon eigene Funktionalität für das Setzen von Timeouts.
Alfons Mittelmeyer
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
jbaben
User
Beiträge: 24
Registriert: Dienstag 12. Januar 2016, 16:05

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.
BlackJack

@jbaben: Den `Timer` kannst Du mit `cancel()` abbrechen. Dazu musst Du aber auch einen `Timer` starten und keinen `Thread`.
Alfons Mittelmeyer
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!
Antworten