タイマー操作

Timer (コマンド)TimerProc マクロを実行し、組合せによって、 n 秒ごとにスクリプトを実行するのに使用することができます。

次のサンプルは、2秒ごとに timer 操作を実行し、ディスク上のデータファイルが修正されたかどうかをチェックし、新しければ再インポートします。

このスクリプトサンプルを実行するには、まず次のステップを実行します。

  1. 単純な2列のASCIIファイル c:\temp\mydata.dat を作成します。別の名前や場所でも構いません。
  2. 新しいプロジェクトを開始し、デフォルトのASCII設定でファイルを新しいブックにインポートします。ブックのショートネームはmydataに変わります。
  3. データの線+シンボルプロットを作成し、グラフのXY軸スケールプロパティを自動にセットし、新しいデータが追加されたらグラフを更新します。
  4. グラフをアクティブウィンドウのままにします。
  5. プロジェクトに添付したProjectEvents.OGSファイルの[AfterOpenDoc]セクションに下記のスクリプトを保存します。
  6. ProjectEvents.OGSの[BeforeCloseDoc]に次のコマンドを追加します。
    timer -k;
  7. Originプロジェクトを保存し、閉じ、プロジェクトを再度開きます。プロジェクトを開いた時に、timerが開始し、プロジェクトを閉じたときに、timerが実行を停止します。
  8. ディスク上のデータファイルに行き、編集して、2, 3のデータポイントを追加します。
  9. timer操作により再インポートが実行され、グラフが新しいデータで更新されます。
// TimerProcマクロのセットアップ
def TimerProc {
	// ファイルが存在するかをチェック、無ければ終了
	string str$="c:\temp\mydata.dat";
	if(0 == exist(str$) ) return;
 
	// ディスク上のファイルの日付/時間を取得
	double dtDisk = exist(str$,5);
 
	// データブックのスクリプトを実行
	// ここでブックのショートネームはmydataであることが前提
	win -o mydata {
		// 最後のインポートの日付/時間を取得
		double dtLast = page.info.system.import.filedate;
 
		// ディスクのファイルが新しければ、ファイルを再インポート
		if( dtDisk > dtLast ) reimport;
	}
}
 
// 2秒ごとにTimerProcを実行するようセット
timer 2;

Samples\LabTalk Script Examples サブフォルダには、Reimport File Using Timer.OPJ というOriginプロジェクトがあり、これは上記でセットアップしたスクリプトに似ています。このOPJを開き、スクリプトを表示して、この機能を試します。