ちょっとした裏話として、マシン アプリケーションに最適なアーキテクチャについて質問しているこの質問を読むことができますが、この質問で私を助けるために完全に必要というわけではありません。
有限ステート マシンの (特に実装に関する) 私の理解は少し若く、少し欠けているかもしれませんが、私はこのアプリケーションを 1 つとして実装しており、ネストされた FSM が必要な場所があります。基本的に、マシンにはいくつかの高レベルの状態があります (コールド [別名]、ホーミング イン、セットアップ、実行準備完了、実行中、レポート、リセット中)。 (レンズのロード、エッジの位置の特定、くさびの測定、真円度の測定、および完了 [そこにさらにいくつかある場合があります])。
私の質問はこれです:状態がサブ状態のリストを持つことができ、システムがそれらのサブ状態に入り、それらのサブ状態が親状態に戻ることができる「ネストされた状態」を持つ機能を組み込む必要がありますか? それとも、FSM 実装を Running 状態の中に置き、それらを 2 つの別個の FSM として保持する必要がありますか? それとも、私が愚かなことをしている、または考えているので、考え直すべきだと思いますか?
考え、提案、批判、アドバイスはすべて大歓迎です。