さまざまなマシン構成でこれらのことを行うにはおそらく多くの方法がありますが、そうは言っても、これは非常に明確に提示されたゲストであり、私はそれに時間を費やしたいと思いました.
あなたは近くにいて、これを実現するためのいくつかのこと(私はトリックと言うでしょう)を逃しました. 答えはextended state variables、マシンにメモリを追加するために使用することです。これらの変数は通常、マシンが何をする必要があるかを表すために必要なステートメントの数を制限するために使用されます。3 つのループが必要であり、必要に応じて各ループとトランジション (特定のガードを使用) を表すために、より多くの状態を作成することができます。ただし、10 または 20 または 100+ などのループがさらに必要な場合、これは単純に状態構成を爆発させます。
私はssm-sample3で例を作成しました。これは、どのようextended state variablesに異なるかを示してguardsおり、actionsこの特定のフローを推進するために使用できます。
残念ながら、電流にはバグがあり、ジャンクション1.1.1.RELEASEに直接遷移して、AWAITING_VALIDATION一時停止してガードを持つ無名遷移を使用するHAS_ERRORまでループすることができません(そのため、サンプルにはで不要なダミー状態があります)。VALIDTMP1.2.x
これはおそらく、例として、または参照ドキュメントによくある質問として追加したいものです。
これが役立つかどうかレミーは知っています。