拡張実行モデル: 用語の定義

MicroC プロファイルを使用して、要素アクションのシーケンスを指定できます。要素パーツの実行順序の指定は、「実行スキーム」および MicroC 概念の「実行可能」と「実行マネージャー」に基づきます。

実行可能 オブジェクト

MicroC プロファイルの使用時には、要素が実行マネージャー として定義されていて、 並行性の設定が順次 である場合は、その要素は独自のイベント・キューを保持します。 この動作は、並行性がアクティブに設定されている場合に限ってモデル要素はイベント・キューを保持するという通常の振る舞いとは異なります。

クラスまたはオブジェクトは、各自の「フィーチャー」ウィンドウの「一般」タブで実行可能 とタグ付けされます。 doExecute() メソッドを実装するには、クラスの実行可能 タグが必要になります。 doExecute() メソッドは独自の計算を実行して、値を返します。

「フィーチャー」ウィンドウ - 使用可能な「実行スキーム」チェック・ボックス
「フィーチャー」ウィンドウ - 「パーツ」タブ

実行マネージャー オブジェクト

実行マネージャー とタグ付けされているクラスまたはオブジェクトは、自身および親の実行を制御します。

各実行マネージャーは、その実行可能パーツの実行を制御します。 実行マネージャーは、ステートチャートに定義されたイベントを処理するために、独自のイベント・キューを保持します。 C_CG::Class::ExecutionManagerDispatchEventOrder プロパティーの値 を変更することによって、イベント処理をその要素のパーツの doExecute メソッドの前に行うか後に 行うかを指定できます。マネージャーのイベント・キューの実行サイズは、C_CG::Class::ExecutionManagerEventQueueSize プロパティーで制御されます。 実行マネージャーは、そのパーツのパーツ (つまり階層の最下位にあるパーツまで) に 定義済みのステートチャートも処理します。モデル階層の任意の場所に、新規実行マネージャー を定義できます。ただし、doExecute 呼び出しについては、 実行マネージャーはその直接のパーツに定義された doExecute メソッドのみを 呼び出します。

1 つ以上のモデル要素を 実行可能 と指定したにもかかわらず、少なくとも 1 つのアクティブ要素もモデルに存在しない 場合は、生成コードにパッケージ・レベルの doExecute メソッドが組み込まれます。このパッケージ・レベルの メソッドは、パッケージの最上位にある個々の実行可能要素に定義された doExecute メソッドを 呼び出します。 このデフォルトの振る舞いは、C_CG::Configuration::UseMainTask プロパティーの値を 変更してオフにすることができます。

アクティブ要素の「フィーチャー」ダイアログ

アクティブ要素では、実行マネージャーの doExecute() メソッドは、以下に示すように定義されます。
  • 定義された実行順序に従って、ステートチャートのないすべての「実行可能」パーツの doExecute() を呼び出す。
  • イベント・キュー内のすべてのイベントをディスパッチする (存在する場合)。
「アクティベーション・ポリシー」プロパティーを使用することで、上記操作の順序を制御できます。 アクティブ要素の場合、このプロパティーには値「定期的」または「非同期」を設定できます。 アクティブ要素の「フィーチャー」ダイアログの「実行スキーム」フィールドは、常にデフォルトで、実行可能かつ実行マネージャーとして定義されています。 また、このダイアログには、2 つの選択可能な値 (「定期的」および「非同期」) があります。
「フィーチャー」ウィンドウ - 使用可能な「実行スキーム」チェック・ボックス
  • 値「定期的」を指定すると、システム始動から「遅延」時間後に実行して、その後「期間」時間ごとに定期的に実行することができます。 アクティベーションごとに、完了するまで実行します。
  • 値「非同期」を指定すると、「期間」フィールドおよび「遅延」フィールドが選択不可になり、 キュー内に保留シグナル (イベント) が生じたときにオペレーティング・システム (OS) から制御を取得することができます。

順次要素の「フィーチャー」ダイアログ

順次要素は実行マネージャーとしてタグ付けすることができ、doExecute () メソッドを実装するにはそのタグ付けが必要です。 順次モデルおよびそのパーツの実行を制御するには、「実行マネージャー」ボックスにチェック・マークを付ける必要があります。 順次要素を実行マネージャーとすると、そのリアクティブ・パーツのイベント・ディスパッチングも含めて、そのすべてのパーツによって要求される完全な実行が行われます。

注: 順次要素では、「アクティベーション」フレームは表示されません。

「フィーチャー」ウィンドウ - 使用可能な「実行スキーム」チェック・ボックス

実行マネージャー: 実行順序

モデルの兄弟パーツ間で実行順序を定義できます。

「フィーチャー」ウィンドウの「パーツ」タブで、以下の列を持つパーツ・テーブルを定義できます。
  • 名前 – パーツの名前
  • 実行順序 - 以下の値のいずれかを取る可能性があります。
    • 整数: 実行可能 とタグ付けされたパーツに表示されます。 実行順序を示すもので、変更可能です。
    • N/A: 実行可能 とタグ付けされていないパーツに表示されます。それを変更することはできません。

「フィーチャー」ウィンドウ - 使用可能な「実行スキーム」チェック・ボックス

  • タイプ: 以下の値のいずれかを取る可能性があります。
    • 実行マネージャー: パーツは実行マネージャーとしてタグ付けされています。
    • 実行可能: パーツは実行可能としてタグ付けされています。
    • リアクティブ: 実行可能とも実行マネージャーともマークされていない、ステートチャートを持つパーツです。
    • None: 実行可能とも実行マネージャーともマークされていない、ステートチャートがないパーツです。
    • アクティブ: アクティブとしてタグ付けされているパーツです。
    • inNetworkPort: 入力シグナルに接続されます。
    • outNetworkPort: 出力シグナルに接続されます。

「フィーチャー」ウィンドウ - 使用可能な「実行スキーム」チェック・ボックス


フィードバック