Main Content

cgsl_0405: コンポーネント展開用のデータ受信

ID: タイトルcgsl_0405: コンポーネント展開用のデータ受信
説明Aターゲット プラットフォームの受信側サービスの呼び出しをモデル化するには、In Bus Element ブロックまたは Inport ブロックを使用します。
B

データに同時アクセス用のセーフガードを適用するには、[During Execution] または [Outside Execution] の通信方法を使用するように構成されたサービス インターフェイスにコンポーネントの入力端子をマッピングします。

  • During Execution — アルゴリズムを実装する、生成される呼び出し可能な関数によって、データに同時アクセス用のセーフガードが適用されます。

  • Outside Execution — ターゲット プラットフォーム サービスによって、データに同時アクセス用のセーフガードが適用されます。

C

データへの同時アクセスが重要でない場合は、[Direct Access] の通信方法を使用するように構成されたサービス インターフェイスにコンポーネントの入力端子をマッピングします。この場合、データ アクセスに対するセーフガードは提供されません。

根拠

生成コードがターゲット プラットフォーム環境で必要なデータ通信方法と揃います。

モデル アドバイザー チェック受信側サービスのサービス インターフェイスは 3 つのデータ通信方法のいずれかを使用するように構成されていなければならないため、このガイドラインについてはモデル アドバイザー チェックは必要ありません。

ターゲット プラットフォームのデータ受信側サービスを呼び出すためのデータ通信方法の指定

Embedded Coder dictionary interface for selecting the data communication method

この例では、データ通信方法を [Outside Execution] に設定します。

void CD_integrator(void)
{
  .
  .
  .
  for (i = 0; i < 10; i++) { 
    .
    .
    .
    rtDWork.DiscreteTimeIntegrator_PREV_U[i] = (get_CD_integrator_input())[i];
  }
  .
  .
  .
}

この例では、データ通信方法を [During Execution] に設定します。

void CD_integrator(void)
{
  .
  .
  .
real_T tmp[10];
  .
  .
  .
  get_CD_integrator_input(&tmp[0]);
  .
  .
  .
  for (i = 0; i < 10; i++) {
    .
    .
    .
    rtDWork.DiscreteTimeIntegrator_PREV_U[i] = tmp[i] 
  }
  .
  .
  .
}

この例では、データ通信方法を [Direct Access] に設定します。

void CD_integrator(void)
{
  .
  .
  .
  for (i = 0; i < 10; i++) {
    .
    .
    .
    ... = CD_sig.In[i];
  }
  .
  .
  .
}

バージョン履歴

すべて展開する

R2022b で導入