Python と PyGTK を使用しています。シリアルポートからデータを取得して保存する特定の機能を数分ごとに実行することに興味があります。
現在、time ライブラリで 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 分にすることができます。私の問題は、readerial() 関数を使用して、5 分ごとに何が起こっているかを一時停止し、time.sleep() 関数を使用する代わりに、常に何かを実行できるようにしたいということです。
この問題を解決する方法について何か提案はありますか? マルチスレッド?割り込み?私はpythonを使用していることに注意してください。
ありがとう。