2008年4月18日金曜日

タイマー(その2)

データ収集用ソフトウェアタイマー

タイマーが time ライブラリモジュールの sleep() だけでは寂しいので、よくある要求
「1秒ごとに、3分間のデータを収集する」
というようなことをするためのプログラム。
ソフトウェアトリガーなので、タイムタグは目安程度

  1. 収集する時間を分でセットする TimeMeasurementMinutes
  2. 収集間隔を秒でセットする TimePeriod
  3. 関連する何かを初期化する
  4. while で目的の終了時刻まで処理を続ける
  5. If で収集時刻になったら測定とかデータ収集をする
  6. 終了時刻になったら終わる

本気でやるときには、ハードウェアによる外部トリガを使った方がいいです。また、外部トリガーによるデータ収集の場合でも、この時刻タグの情報(安定度も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 件のコメント: