Next: 実験装置のインターフェース関数
Up: プログラムの動作
Previous: リアルタイム処理関数
画面表示/コマンド入力ループ関数off_task_loop()の例を次に示す。
Func void off_task_loop()
{
Integer end_flag;
end_flag = 0;
do {
if (rtIsTimeOut()) { // タイムアウトのチェック
warning("Time Out¥n");
break;
}
gotoxy(5, 11); // 観測出力の表示
printf("y1 = %f[m] y2 = %f[rad]", y(1), y(2));
if (kbhit()) { // コマンド入力
switch (getch()) {
case 0x1b: // ESCキーが押されると
end_flag = 1; // ループが終了する
break;
default:
break;
}
}
} while (end_flag == 0);
}
- 関数rtIsTimeOut()はサンプリング時間内にリアルタイム処理が
終了したかどうかを調べる。処理が終了しなかった場合は,警告を出力
して関数を終了する。
- ESCキーが押されるとループが終了し,関数も終了する。
- 関数gotoxy()はプロンプトを移動する。
- 関数kbhit()はキーボードが押されたかどうか調べる。
- 関数getch()は押されたキーの値を読み込む
- gotoxy(),kbhit(),getch()はCコンパイラ付属の
関数である。
Masanobu KOGA
平成10年8月19日