おはやし日記

テーマ……バイク←プログラミング←旅

Automate布教連載: 3

今回は,Automate仕様紹介です。

公式サイトのDocumentationを参考に,スクショを交えつつ,日本語でまとめ(?)たいと思います。

Flow(フロー)

フローは自動化の「ソースコード」であり、ブロックで構成され、各ブロックが1つのタスクを実行します。これは、ファイルのコピー、変数への値の割り当て、メディアボタンが押されるのを待つなどのアクションです。ブロックは、デバイスのロックが解除されているか、ユーザーに判断させるなどの条件もチェックします。構築するブロックはたくさんありますが、今後さらに追加される予定です。

ブロックは、「コネクタ」ドット間のパス/レーンによって他のブロックに接続できます。フローの実行中、ファイバーはパスに沿って各ブロックを通過します。ブロックに含まれるドットの数はブロックのタイプによって異なりますが、標準ブロックには次の2つのタイプがあります。

アクションブロックは別のブロックの結果として実行されるため、1つ以上の着信(IN)接続が必要です。アクションの結果は1つのみです。OK。
決定ブロックは別のブロックの結果として実行されるため、1つ以上の着信(IN)接続が必要です。決定の結果は、YESまたはNOになります。

 公式ページ(https://llamalab.com/automate/doc/flow.html)からgoogle翻訳

なるほど!!!わからん!!!

では,実例を見てみましょう。

↑これは前回作った足し算のFlowです。各ブロックにそれぞれタスクを割り当て,「ドット」をつないで接続していますね。ブロック1「Flow beginning」は単にFlowの開始なのでドットは1つです。

ブロック4, 6はいわゆるアクションブロック(action block)なので入力と出力の2つのドットが付いてます。

ブロック2, 3は決定ブロック(dicision block)なので,出力に「YES」と「NO」があります。前回見たように,処理に成功すれば「YES」に分岐し,失敗すると「NO」に分岐します。

なるほど!!!わかった!!!せやろか

Fiber(ファイバー)

ファイバーは、フローの実行中のインスタンスです。 コンピュータープログラムのように、フローを複数回開始して、すべて同時に実行する複数のファイバーを作成できます。 各ファイバーは独立して実行され、現在タスクを実行しているフロー内のブロックを指し、ユーザーが宣言した変数の値の独立したセットも含まれています。

ファイバーは、フロー開始ブロックを使用して手動でフローを開始するか、Forkブロックを使用して既に実行中のファイバーを「クローン」することにより作成されます。

ファイバーは、フローが手動で停止されるか、フロー停止またはファイバー停止ブロックによって接続されていないドットに到達するか、エラーが発生すると停止します。 すべてのファイバーが停止すると、フローは停止したと見なされます。

すべてのファイバーは同時に実行されますが、個々のファイバーが一時停止して、ブロックタスクの完了を待つ場合があります。 多くの場合、これはブロックの[続行]オプションで構成できます。

公式ページ(https://llamalab.com/automate/doc/flow.html)からgoogle翻訳

なるほど!!!わからん!!!

 まあつまり,実行中のBlockのつながりがFiberだということですね。Flowは,1つのファイルの中に複数作成することができます。これを同時に走らせることができるというわけですね。Fiberの停止は,上の図だとBlock6でメッセージダイアログを出したあと,「OK」ドットに到達して,行き先がなくなって止まる,という感じです。

なるほど!!!わからん!!!

まあわからんくてもそんなに困らないです。3つのFlowを起動させるFlowを組むと,こんな感じに動作中のFiberの数が表示されます(RUNNING FIBERS)

↓ちなみに詳細は省きますが中身はこんな感じです。左端のFlowを起動すると「Start flow」ブロック2, 3, 4によって「Flow beginning」ブロック5, 6, 7を開始させます。それぞれのFlowの中身は10秒待機するだけです。

Block configuration(ブロック構成)

多くの場合、ブロックは特定の方法でアクションまたは決定を実行するように構成できます。構成、ブロックエディターのフィールドは、3つのセクションに分かれています。

フローの編集時にはユーザーが「コンパイル時」にのみ変更でき、ファイバーが実行中の実行時には変更できないオプション。多くのブロックには、ブロックの基本機能を制御するProceedというオプションがあります。
実行時にファイバーによって評価される入力引数には、変数と演算子を含む式、または定義済み(定数)値のみが含まれる場合があります。すべての入力引数が必要になることはほとんどなく、指定しないままにしておくことができます。その場合、代わりに適切なデフォルトが使用されます。ブロックの指示を読んでください。
出力変数は、実行時にファイバーによって使用され、ブロックの結果または「出力」を保存します。出力変数フィールドには、式またはその他の値ではなく、ユーザー宣言変数の名前のみを含めることができます。結果は、ブロックが完了すると名前付き変数に割り当てられ、変数は次のブロックで入力引数として使用できます。
続行オプション
多くのブロックには、Proceedと呼ばれるオプションがあります。このオプションは、ブロックの完了を待機するためにファイバーを一時停止するか、条件の変更を待機するか、または一時停止せずにただちに続行するかを制御します。

決定ブロックの場合、[続行]オプションは通常、ブロックに現在の状態を即座に確認させるか、状態が変化するのを待ちます。たとえば、現在地にいるかどうかをブロックの場所で確認したり、場所に出入りするまで待つことができます。 Wi-Fi接続ブロックは、ネットワークが現在接続されているかどうかを確認したり、ネットワークの接続/切断を待機したりできます。

他の自動化アプリは、「イベントトリガー」と「条件/制約チェック」を区別します。自動化(注:原文は"Automate"(このアプリの事))は、異なる機能オプションを使用して、同じ機能を単一のブロックに結合します。

公式ページ(https://llamalab.com/automate/doc/flow.html)からgoogle翻訳

 なるほど!!!わからん!!!

う〜〜ん書いてある通りですねぇ…………それぞれのブロックの解説の時にわかれば良いのでは………(放棄)

なんか全然解説できてない気がしますね。あんまり気にしなくて良いって事でしょう。遠い未来にもっとちゃんと解説できるかもしれないです。

おしまい!!!!!!!!!!!!

プライバシーポリシー ・お問い合わせはこちら