Ich benutze Python und PyGTK. Ich interessiere mich für das Ausführen einer bestimmten Funktion, die Daten von einer seriellen Schnittstelle erhält und alle paar Minuten speichert.Führen Sie eine Funktion alle X Minuten - Python
Derzeit verwende ich die Funktion sleep() in der Zeitbibliothek. Um in der Lage zu sein, die Verarbeitung zu tun, ich habe mein System wie dies ein:
import time
waittime = 300 # 5 minutes
while(1):
time1 = time.time()
readserial() # Read data from serial port
processing() # Do stuff with serial data, including dumping it to a file
time2 = time.time()
processingtime = time2 - time1
sleeptime = waittime - processingtime
time.sleep(sleeptime)
Diese Setup me 5-Minuten-Takt zwischen dem Lesen von Daten aus dem seriell Port haben kann. Mein Problem ist, dass ich möchte, dass meine Funktion "readserial() alle 5 Minuten pausiert, was vor sich geht, und dass ich ständig Dinge tun kann, anstatt die Funktion" time.sleep() "zu verwenden.
Irgendwelche Vorschläge zur Lösung dieses Problems? Multithreading? Interrupts? Bitte beachte, dass ich Python benutze.
Danke.
Dank. Das ist genau das, wonach ich gesucht habe. – mouche
Ihr Rückruf muss "True" oder "False" zurückgeben, um das Ereignis fortzusetzen oder zu terminieren. –
Die Frage ist alt, aber wenn jemand dies auf Gtk + 3 tun muss, ist die Funktion 'GLib.timeout_add (Verzögerung, Funktion, arg)' – arkocal