1

私はしばらくステート マシン ベースの設計ツールを使用しており、ステート内でロジックを実行 (関数の呼び出し、その他の処理) できる UML モデリング ツールを見てきました。しかし、IAR VisualState を数日使用した後では、トリガーがないと状態内でロジックを実行できないようです。状態内のすべてのアクションに対してトリガーを設定するのは意味がないので、私は混乱しています!

ステート チャート ツールに期待することは次のとおりです。StateA に入ると、ステートに入ると、エントリ セクションに値を設定し、関数を呼び出したいと思います (呼び出したいだけです。トリガーはありません)。その関数、私はいくつかのロジックに基づいてイベントをトリガーしたいと考えています。そのイベントは、StateA から StateB または StateC への状態遷移をトリガーします。

この期待に何か問題がありますか?VisualSTATEで可能ですか?

助けていただければ幸いです。

4

2 に答える 2

2

VisualSTATE は、他のグラフィカル ユーザー インターフェイス プログラムと同様に、イベント ドリブン パラダイムを課します。このようなシステムで発生するすべてのことは、イベントによってトリガーされます。次に、システムはアクション (計算) を実行し、場合によっては状態を変更する (状態遷移) ことによって応答します。

おそらく、イベント駆動型システムの最も難しい側面は、制御の反転です。つまり、(ステート マシン) コードは、処理するイベントがある場合にのみ呼び出されます。それ以外の場合、コードはアクティブではありません。これは、あなたがコントロールできていないことを意味します。イベントはコントロールされています。あなたの仕事は、イベントに応答することです。

おそらく、visualSTATE を試す前に、Windows 用の GUI プログラミングに関する本を手に取り (Visual Basic が出発点として適しています)、いくつかのイベント駆動型アプリケーションを構築できます。これを行うと、visualSTATE の背後にある哲学がより明確になります。

于 2011-06-04T21:38:15.937 に答える
0

A、B、C の 3 つの状態を作成します。ここで、状態 A は既定の状態です。状態 A に入って、アクション関数 [何らかのアルゴリズムに従って変数 a と b を設定する] を呼び出し、続いて ^Signal1 を呼び出します。

Entry/ action()^Signal1

2 つのガードを使用して、状態 A から Signal1 [イベントとして機能します] によって駆動される遷移を行います。

a <= b, transition to state C

a > b, transition to state B

于 2013-08-02T17:34:52.647 に答える