モデル コード インターフェイス
ターゲット プラットフォームのサービスと対話できるコードを生成するには、コード ジェネレーターがターゲット プラットフォームのインターフェイス要件を認識している必要があります。そのための最初のステップとして、特定のモデル要素を含めることで、最上位モデルで必要なインターフェイスを表します。たとえば、ルートレベルの In Bus Element ブロックまたは Inport ブロックを使用して、ターゲット プラットフォームの受信側サービスからデータを読み取るためのインターフェイスをモデル化できます。
次の表に、一般的なコード インターフェイスと、最上位モデルでそれらを表す方法をリストします。
| コード インターフェイスのタイプ | モデル要素またはパターン |
|---|---|
| 呼び出し可能なレートベースのエントリ ポイント | シングルタスク実行またはマルチタスク実行用に構成されている、あるいは Simulink スケジュール エディターで区画として設定されている、レートベース モデル内のブロック |
| 呼び出し可能なエクスポート関数のエントリ ポイント | Function-Call Subsystem、関数呼び出し Model、Simulink Function、Message Triggered Subsystem、または S-Function の各ブロックを使用して関数を定義するエクスポート関数モデル |
| 呼び出し可能な初期化関数のエントリ ポイント | Initialize Function ブロック |
| 呼び出し可能な終了関数のエントリ ポイント | Terminate Function ブロック |
| ターゲット プラットフォームの受信側サービスの呼び出し | In Bus Element ブロックまたは Inport ブロック |
| ターゲット プラットフォームの送信側サービスの呼び出し | Out Bus Element ブロックまたは Outport ブロック |
| ターゲット プラットフォームのデータ転送サービスの呼び出し | データを交換し、生成コード内で呼び出し可能な関数となる、2 つのブロックを接続する信号線。呼び出し可能な関数とは、ターゲット環境のソフトウェアで呼び出すことができる、生成されたエントリポイントです。 |
| ターゲット プラットフォームの不揮発性メモリへのアクセス | Measurement service interface for persistent data, Initialize Function ブロックおよび Terminate Function ブロック、または Simulink Function ブロックおよび Function Caller ブロック |
| 状態変数とルートレベルの出力変数の間でのメモリの再利用 | 状態変数を信号としてモデル化する関数ループバック パターン、または状態変数をモデル化する Delay ブロック |
| 絶対時間または経過時間の値を取得するための、ターゲット プラットフォームのタイマー サービスの呼び出し | (サービスを表す) スコープ内の Simulink Function ブロック、および (サービスを呼び出す) Function Caller ブロックを含むライブラリ ブロック、あるいはサービス インターフェイス (必要) で構成されたモデルの場合は Discrete Time Integrator ブロックまたは Weighted Sample Time ブロック。 |
| メッセージ通信 | ルートレベルの Outport ブロックに直接接続された Send ブロック、およびルートレベルの Inport ブロックに直接接続された Receive ブロック |
| クライアント/サーバー通信 | Simulink Function ブロックと Function Caller ブロック |
| 調整可能なパラメーターとパラメーター引数 | モデル ワークスペースに保存されているパラメーター オブジェクト |
| 測定用データ | 信号 (ブロックの出力端子)、状態 (ブロックの状態)、および Datastore Memory ブロック |
| カスタム サービス インターフェイス | カスタム ブロック |
次のトピックに、さまざまなタイプのインターフェイスに関する詳細情報が記載されています。
展開の目的や、コード ジェネレーター用にコード インターフェイスを構成する方法に応じて、モデリング ガイドラインが役立つ場合があります。場合によっては、カスタム ブロックの作成を伴うカスタム表現を作成する必要が生じることがあります。
モデリング ガイドラインについては、モデリング ガイドラインおよびブロックの使用、モデリング ガイドライン、生成コードに関するモデリング ガイドライン、および Component Deployment Guidelines for Embedded Coder サポート パッケージを参照してください。
カスタム ブロックの作成については、カスタム ブロックのコード生成を参照してください。