Я использую Python и PyGTK. Меня интересует запуск определенной функции, которая получает данные с последовательного порта и сохраняет их каждые несколько минут.
В настоящее время я использую функцию sleep () в библиотеке времени. Чтобы иметь возможность выполнять обработку, я настроил мою систему следующим образом:
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)
Эта настройка позволяет мне иметь 5-минутные интервалы между чтением данных с последовательного порта. Моя проблема в том, что я хотел бы, чтобы моя функция readserial () приостанавливала все, что происходит каждые 5 минут, и могла делать что-то все время вместо использования функции time.sleep ().
Есть предложения как решить эту проблему? Многопоточность? Прерывания? Пожалуйста, имейте в виду, что я использую Python.
Спасибо.