ステートマシンの知識
- 国家行わ事
- 状態B をやって
- Bの変換条件
- B の状態変換
- 終了条件
- の変換によって行われる各スイッチング動作時
ここではサンプルプログラム
D:\プログラムファイル(x86の)\ナショナルインスツルメンツ\のLabVIEW 2014 ProjectTemplates \ \ソース\俳優フレームワーク
研究文書
- プロセスState.lvclass (状態Actor.lvclassから継承)
- その文脈俳優、オペレータは、以下からなるすべての状態の共通の祖先であります
- :状態は、クラスから継承したIdle.lvclass、Running.lvclass
- コンテキスト俳優の特長
- プロパティのすべての状態のシェア
- 書き換え代替Actor.vi 、別の状態への状態属性(オペレータ)からの遷移(演算子)
- 書き換え俳優Core.vi
- プロセスの状態を変更する(方法)
- オペレータは、親メソッドを呼び出すことができ、この方法は、状態を変更することができます(?)
- これらのメソッドの呼び出しメッセージクラス
- State.vi変更(状態の俳優メンバー)
- 変更状態メソッド(方法は、)を呼び出す変更State.viを
- States.lvlibプロセス(状態クラスから継承コンテキストアクター即ちプロセスState.lvclass )
- 書き換えEntry.vi とExit.vi 、これら二つの機能は、状態を進めることができます
- 状態の変更に伴い、いくつかの行動は、これらのメソッドをオーバーライドし、変更されます
- 行為のいくつかの新しい、この特異な状態
- これらの行為のメッセージクラスを呼び出します
- メソッドのAPOS状態遷移俳優コンテキスト(カスタム操作を変換)
- 入口と出口のコンバージョンアクションのコンバージョンアクションを含みます
- メソッドのオーバーライドを作成Actor.viを代入
- メッセージクラスを作成します
- 特定の状態でオペレータが、受信したメッセージのデータ型が不適切エラーである場合
- このデータは、例外をスローすることなく、自動的に廃棄選択することができます
- 変更Do.vi方法
- あなたはより多くの複雑な挙動をしたい場合は、この関数の動作は、親クラスに置くことができるので、異なるサブクラスは、この機能を書き換えることができます
- 実行プロセス
- システムの起動:する初期状態Actor.viを起動します
- システムの発信者(発信者)公衆への状態遷移メッセージを送信状態間接的状態遷移関数(メソッド)と呼ばれ、;又は状態自体直接コール転送機能
- 状態パターンUI.lvclass
- これは、ユーザー・インタフェースでは、オペレータが活性化して、状態パターン俳優、プロセスの状態を入れ子になった俳優
考えます
- どのような状態のオペレータが必要ですか?状態図は、どのようにペイントするには?
- アクションを実行する状態でのアクション(すでに実証済み)とサイクルを実行するトリガすることはできますか?
- どのように達成するために?
テスト
- 親クラスのIdle.viに行くとサブクラスIdle.viのに行くブレークポイントのテストと誰が最後にオブジェクトに送信されたメッセージに応じて、実行を実行しなければならない2つの関数の間には関係が、見つかりませんでした。
- あなたは、親と子のクラスは、対応する機能を有していることがわかりますが、メッセージクラスは一つだけを持っています(?)
- 制御ループの応答関数に通知を使用してのようなスレッド同期サイクルに添加することができる方法、または
- 各オブジェクトであって、そのような構造を有することができるクラスの状態機械モデルを有する:状態UI クラスプロセスの親クラス、いくつかの状態クラス
- UI ベースのインターフェイスとコア機能を含みます
- プロセスの親クラス(この機能は、円形のコアではなく、ブロック図注意)コア機能を備えており、機能の状態を切り替えるための切替機能状態
- 状態の上、つまり、ほとんどの機能の状態ステー実行(この機能がトリガされ、現在のプロジェクト)のアウト機能とステータスを含むクラスは、この機能は、サイクルの実行に変換する必要がありますが、実行サイクル機能もサイクルトリガとして見ることができます層(コール)セットアップ期間トリガーロジック機能。
教科書を見て
- ソフトウェア設計プロセスモデルでは、状態図を描き、我々は状態図の設計作業の枠組みに従ったモデルを述べることができます。
プログラミングを設計しながら、
- 現在のプロジェクトの要件は、状態図の状態に応じて、図に示すように設計します。