要素パーツのアクション・シーケンス順序の指定

MicroC プロファイルを使用して、要素のパーツに対して、実行が必要なアクションのシーケンスを 指定することができます。

このタスクについて

クラス、暗黙オブジェクト、およびファイルに対して、実行が必要な アクションを指定できます。

要素パーツの実行順序の指定は、以下の 2 つの MicroC 概念に基づいています。

あるモデル要素が実行可能 であると 指定するには、その要素に対して doExecute というメソッドを作成します。 このメソッドを使用して、その要素に対して実行される 必要のあるアクションを、アクションの特定のシーケンスの一部として指定できます。

注: 実行可能要素に対して doExecute メソッドを 作成しなかった場合、プログラムはコード生成時に 空の doExecute メソッドを生成します。

doExecute メソッド は、計算を実行して戻るというコードで構成される必要があります。つまり、このメソッドは オペレーティング・システムが提供する「待機」フィーチャーを使用することはできません。

ある要素 が実行可能 または実行マネージャー である必要があることを、その要素の「フィーチャー」ウィンドウの「実行スキーム 」セクション で指定できます。「実行スキーム」セクションが表示されるのは、MicroC プロファイル使用時の「フィーチャー」ウィンドウにのみです。

注: 要素 の並行性設定を順次 と指定する場合、その要素を実行可能 にするのか、 実行マネージャー にするのかを決定できます。一方、 要素の並行性設定をアクティブ と指定した場合、プログラムは自動的にその要素を実行マネージャー にします。

手順

  1. 新規」ボタン 「新規」ボタン をクリックするか、または「ファイル」 > 「新規」を 選択して「新規プロジェクト」ウィンドウを開くことによって、MicroC プロジェクトを作成します。
  2. プロジェクト名」フィールドに、プロジェクト名を入力します。
  3. フォルダー」フィールドで、「参照」をクリックして、プロジェクトのフォルダーの場所を選択します。
  4. プロジェクト・タイプ」フィールドで MicroC プロファイルを選択し、 「プロジェクト設定」で CodeCentric752C を選択します。
  5. 「OK」をクリックします。指定した場所 が存在しない場合、その場所を作成するかどうかの確認を 求められます。「はい」をクリックします。 MicroC プロジェクトが生成されます。
  6. ダイアグラム・ツール」を使用して、 モデルにクラスを追加または作成します。クラスに実行スキームを割り当てるには、 クラスを強調表示し、右クリックしてドロップダウン・リストから「フィーチャー」を 選択します。
    「フィーチャー」ウィンドウ - 使用可能な「実行スキーム」チェック・ボックス
  7. 実行マネージャー の場合は、 「フィーチャー」ウィンドウの「パーツ」タブで、そのパーツの実行順序を指定してください。
    「フィーチャー」ウィンドウ - 「パーツ」タブ

タスクの結果

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

実行マネージャーのイベント・キューのサイズは、C_CG::Class::ExecutionManagerEventQueueSize プロパティーで 制御されます。

各実行マネージャーは、その実行可能パーツの実行を制御します。 実行マネージャーは、その実行マネージャーのステートチャート、および その実行マネージャーのパーツ (これらパーツ自体は実行マネージャーでない) に 定義済みのステートチャート内に定義されたイベントを処理する独自のイベント・キューを 保持します。C_CG::Class::ExecutionManagerDispatchEventOrder プロパティーの値 を変更することによって、イベント処理をその要素のパーツの doExecute メソッドの前に行うか後に 行うかを指定できます。

注: 実行マネージャーは、そのパーツのパーツ (つまり階層の最下位にあるパーツまで) に 定義済みのステートチャートも処理します。ただし、doExecute 呼び出しについては、 実行マネージャーはその直接のパーツに定義された doExecute メソッドのみを 呼び出します。

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

注: パッケージ・レベルの doExecute メソッドは、 パッケージ内の最上位要素に定義された doExecute メソッドのみを呼び出します。 実行マネージャーに関連付けられていない、階層の下位にある実行可能要素は処理しません。

フィードバック