uibot:みんなのためのロボット!
フローチャートに判断を追加したり、複数のプロセスブロック間でデータを転送したりする場合は、このセクションをお読みください。フローチャートで変数を使用することもできます。現在のプロセスの変数が「フロー内(in the flow)」の時にだけ作用します。このプロセスブロックでは直接に使用されません。
プロセスブロックの実行が始まると、プロセスブロックに値(変数または式)を入力することができます。 プロセスブロックが終了した後、フローチャートの変数に値を出力することもできます。フローチャートに判断を追加して、特定の値に基づいてどのパスに沿って行うかを決定することもできます。
フローチャートの中で、マウスの左ボタンでプロセスブロックを一つ選択してください。このプロセスブロックのプロパティは、右側の[プロパティ]という列に表示されます。 次の左図に示すように、この列には「入力(input)」と「出力(output)」という2つの項目が含まれています。データをプロセスブロックに渡したい場合は、入力列(変数、式など)を入力してください。そして、プロセスブロックで特別な変数であるself.inputを使用してください。その変数は、すべての入力値を自動的に保存することができます。プロセスブロックから[プロパティ]列にデータを送信したい場合、以下の式を記述してください。
return < output value>
プロセスブロックに入って、フローチャートの[プロパティ]列に変数名を入力して、出力値を変数に保存します。uibotのプログラミング言語は、キーワードと変数名の大文字と小文字に対して区別しないため、self.input、self.input、return output valueなどのような記述をすることもできます。
フローチャートのプロパティバー
同様に、フローチャートに判断要素をフローチャートにドラッグし、マウスの左ボタンで判断要素を選択して使うことができます。それから、プロパティバーで要素のプロパティを確認することができます。右に示すように、「条件式(conditional expressions)」列はキーワードです。変数または式を入力することができます。 プロセスでこの判断が行われたとき、変数または式の値が真(true)であるかどうかが決められます。或いは、「はい」の矢印と「いいえ」の矢印に従って行いません。
次の図に示すように、「判断」要素には2つの矢印があります。1つは「yes」とマークされ、もう1つは「no」とマークされています。プロパティの「条件式」がtrueの場合、「yes」の矢印に沿って逆方向に実行され、そうでない場合は「no」矢印に沿って逆方向に実行されます
条件式に基づいてプロセスを決定する
これから、フローチャートの入出力機能の具体的な使用方法について説明します。 たとえば、「プロセスブロック1(processing block 1)」と「プロセスブロック2(processing block2)」と、2つのプロセスブロックが含まれているフローチャートがあります。次の図に示すように、最初に「プロセスブロック1」を実行し、次に「プロセスブロック2」を実行します。「プロセスブロック1」が現在のシステムの時刻を取得し、それを文字列形式に変換してから「プロセスブロック2」に出力します。23 「プロセスブロック2」がデバッグ情報の形でuibot creatorに「プロセスブロック1」を表示します。
二つの順次プロセスブロック
最初に「プロセスブロック1」を選択し、変数xを想定して、「出力」プロパティの中に変数名を入力します。 次に、「プロセスブロック2」を選択し、その「入力」プロパティに同じ変数名(大文字と小文字を区別しない)を入力します。このようにして、変数xを介して、下図のように「プロセスブロック1」の出力と「プロセスブロック2」の入力が接続されます。 この変数xは現在のフローチャートでのみ有効であり、その機能は単に2つのプロセスブロックを接続することです。 プロセスブロック1とプロセスブロック2の中で、xを直接使用して値を設定したり、または取得したりすることはできません。
同じ変数を介してプロセスブロック1の出力をプロセスブロック2の入力に接続する
どのようにしてプロセスブロック1の出力とプロセスブロック2の入力を接続させますか?
まず、「紙とペン」というアイコンをクリックして、プロセスブロック1に進みます。 次に、「システム時間の取得(get system time)」と「フォーマット時間(format time)」のコマンド(「時間」カテゴリの中)を挿入し、次の「時間」のプロパティを設定します。「システム時間の取得」結果として「フォーマット時間」を取得します。そこで、現在の時刻を取得し、調整することができます。
次に、「jump out and return」コマンドを(字句分類の下)挿入し、sretを戻り値として設定して、下図に示すように、プロセスブロック1が正しく出力できるようにします。読者が理解しやすいために、プロセスブロックの視覚ビューとソースコードビューが図にリストされており、読者は習熟度に応じて一つを選ぶことができます。
プロセスブロック1で現在の時刻を出力する
その後、「紙とペン」アイコンをクリックしてプロセスブロック2に入ります。「output debugging information」コマンドを挿入し、「output content」プロパティをselfに設定します。次の図に示すように、入力(大文字と小文字は区別されません)します。それと同じく、分かりやすいために、プロセスブロックのビジュアルビューとソースビューを簡単にリストします。
プロセスブロック1からプロセスブロック2のデバッグ情報を出力する
フローチャートインターフェイスに戻り、[実行(run)]ボタンをクリックします。その後、操作の結果をチェックすることができます。注:プロセスブロック2はプロセスブロック1の出力を取得する必要があるため、フローチャートの結果は正しいです。プロセスブロック2は独立して実行できますが、そうすればプロセスブロック1からの出力がないため、結果が違うかもしれません。