タスクの種類を知る

rehearsalはプログラムの標準入出力はもちろん、TCP通信やシリアル通信などのデータの入出力を一律に標準入出力として管理します。この章ではrehearsalがサポートしているタスクについて紹介します。

タスクを知る

rehearsalではデータの入出力を伴うタスクを一律に標準入出力と対応させることで異なる種類のプロセス間でのやり取りを行っています。

詳しくはドキュメント「タスクの概念」をご覧ください。

サポートしているタスクの一覧

CUIタスク

概要

CUIタスクは実行コマンドなどを指定し、プログラムを実行します。リアルタイムな標準入出力を使用してプロセス間通信を実現し、アプリケーションが終了することでタスクの終了とします。すでに実行されているプログラムの標準入出力を読み取ることはできず、あくまでも「プログラムを実行する」という点にご注意ください。

内部動作について

CUIタスクは標準パッケージであるos/execを使用して実行されます。

SERIALタスク

概要

SERIALタスクはポート名、通信速度、データサイズを指定し、任意のシリアル通信に接続します。シリアル通信の送受信を使用してプロセス間通信を実現します。

終了方法は現在未定義です(v1.202109)。このタスクのuntilプロパティは__eternalとし、waitプロパティはfalseとすべきです。untilプロパティの詳細についてはドキュメント「フェイズとタスク」をご覧ください。

内部動作について

SERIALタスクは外部パッケージであるgo.bug.st/serialを使用して実行されます。パリティチェックは行われません。

TCP/UDP/UNIXタスク

概要

これらのタスクはアドレスを指定し任意のそれぞれTCP通信、UDP通信、UNIXプロセス間通信を使用してプロセス間通信を実現し、相手側の通信が切断されることでタスクの終了とします。

内部動作について

これらのタスクは標準パッケージであるnetを使用して実行されます。また、入出力の同期間隔はテンプレートファイルで設定できます。既定では1秒ごとに同期が行われます。

タスク別の入出力系動作内容

タスクの種類 標準入力 標準出力 標準エラー出力
(テンプレートファイル上の表記) stdin stdout stderr
CUIタスク 標準入力 標準出力 標準エラー出力
SERIALタスク 接続先への送信データ 接続先からの受信データ (該当なし)
TCP/UDP/UNIXタスク 接続先への送信データ 接続先からの受信データ (該当なし)