タイマーが time ライブラリモジュールの sleep() だけでは寂しいので、よくある要求
「1秒ごとに、3分間のデータを収集する」
というようなことをするためのプログラム。
ソフトウェアトリガーなので、タイムタグは目安程度。
- 収集する時間を分でセットする TimeMeasurementMinutes
- 収集間隔を秒でセットする TimePeriod
- 関連する何かを初期化する
- while で目的の終了時刻まで処理を続ける
- If で収集時刻になったら測定とかデータ収集をする
- 終了時刻になったら終わる
本気でやるときには、ハードウェアによる外部トリガを使った方がいいです。また、外部トリガーによるデータ収集の場合でも、この時刻タグの情報(安定度もPCクロックに依存します)を信用して処理に使うとひどい目にあうので、何か工夫しましょう。最高のリアルタイム OS を使っていても mSec の量子化誤差は覚悟してください。
-------------
## Win32 (WinXP)
## Python2.5 (for win32)
from time import time
TimeMeasurementMinutes = 0.02 # in Minute
TimePeriod = 0.1 # Sec
NumberData = 1 # set initial velue
## initializetion
TimeStart = time()
while time() < TimeStart + TimeMeasurementMinutes * 60 :
if time() > TimeStart + TimePeriod * NumberData :
NumberData = NumberData +1
print time()
## measurements
print '\n Done!'
## termination
0 件のコメント:
コメントを投稿