目次

ボタンメソッド設計

 ボタンオブジェクトを定義したのでメソッドを
 設計していきます。
 ボタンオブジェクトに一覧は、以下。

 それぞれのメソッドを設計します。


fload

 ボタンをクリックしたなら、テキストファイル  一覧を表示し、どれかのファイル名を選らべる  ようにします。  Tcl/Tkに組み込まれている「tk_getOpenFile」を  利用してGUIでの操作が可能になるようにします。  ファイル名をtFileNameという変数名で管理。  温度と時刻を、連想配列のxexe_temp、xexe_timeに  値を格納。  ファイルディスクリプタが必要なので、それを  fd_inとしておきます。  ファイルから全情報を取得するために、whileを利用。

fsave

 ボタンをクリックしたなら、FileNameと書いた  ラベルの下に入力した、ファイル名を利用して  ファイルを新規に生成し、情報を保存。  情報は、P0からP5の右に入力した温度と時刻に  します。  項目、温度、時刻の順に格納し、1レコードの  中のフィールドは、スペースで区切ります。  次のようなテキストが格納されるようにします。 P0 20 0:00 P1 120 1:00 P2 120 3:30 P3 210 4:50 P4 210 6:00 P5 20 7:00

fexec

 ボタンをクリックしたなら、温度、時刻の情報  から、1秒経過後の温度、時刻を計算して表示。  ボタンのクリックで、1秒ごとのタイマー割込みを  通知されるようにします。  タイマー割込みで、計算処理と表示をシーケンシャルに  実行します。シーケンシャルに実行するのか、割込みを  無視して、何もしないのかはフラグを参照して判断する  としておきます。  Tcl/Tkは、言語仕様にタイマー割込み処理を含んで  いません。組込み関数afterで、OSが扱うシステム  タイマーを参照し、所定の時間間隔を生成してます。  Tcl/Tkは、OSとしてはUnixを利用することが前提  ですから、システムタイマー値は、OSが扱っている  独自タイマーから生成しているはず。  精度は高くないですが、今回の用途では正確な時刻  を扱わないとして、システムタイマーを使うことに  しました。

fcancel

 ボタンをクリックしたなら、1秒経過後の温度、時刻の  計算と表示を中断終了します。  Execボタンのメソッドの中で、フラグを利用して  計算と表示をするか否かを設定できるとしました。  フラグをenableからdisableにするだけで、動作を  中断させられます。中断後、表示をシーケンス処理  開始前の状態に初期化。

clrParameters

 温度と時刻が、次の組合せになるようにします。 P0 20 0:00 P1 20 0:00 P2 20 0:00 P3 20 0:00 P4 20 0:00 P5 20 0:00

目次

inserted by FC2 system