Real-Time Workshop User's Guide | ![]() ![]() |
必要事項
ext_svr.c
とupdown.c
は、メッセージ、データ収集、その他の目的でターゲットメモリにバッファを割り当てるためにmalloc
を使います。ターゲットが他のメモリ割り当てスキームを使う場合は、これらのモジュールを適切に変更しなければなりません。int32_T
およびuint32_T
データタイプの両方をサポートすると仮定されます。ext_transportの変更のガイドライン
ext_transport.h
の関数のプロトタイプは、ホスト(クライアント)側のトランスポート層関数の呼び出しインタフェースを定義します。実現は、ext_transport.c
です。
ext_transport.c
の"Visible Functions"セクションの関数を、低レベルの通信プリミティブを呼び出す関数で置き換えます。この関数は、ext_comm.c
のような他のexternalモードのモジュールから呼び出されます。ext_transport.h
で定義されているすべての関数を実現しなければなりません。ユーザの実現は、ext_transport.h
に定義されているプロトタイプに従わなければなりません。ext_transport.c
のUserData
構造体に対する定義を与えます。この構造体は必須です。UserData
がexternalモードの実現で必要ない場合は、1つのダミーフィールドをもつUserData
構造体を定義します。ext_transport_share.h
内の関数を、低レベル通信プリミティブを呼び出す関数で置き換えるか、あるいはこれらの関数を削除します。ext_transport_share.h
で定義された関数は、ホストとターゲットに共通で、トランスポート層の公開可能なインタフェースの一部ではありません。mex
コマンドを使って、ext_comm
MEX-ファイルを再ビルドします。これは、MATLAB APIがサポートするコンパイラが必要です。mex
コマンドに関する詳細は、MATLABのオンラインドキュメントの「External Interfaces」 を参照してください。つぎの表は、PCおよびUNIXプラットフォーム上で、標準のext_comm
モジュールをビルドするためのコマンドの形式の一覧です。
ext_transport
とext_transport_share
ソースコードモジュールは、コメントが付けられています。詳細は、これらのファイルを参照してください。
ext_svr_transportの変更のガイドライン
ext_svr_transport.h
の関数のプロトタイプは、ターゲット(サーバ)側のトランスポート層の呼び出しインタフェースを定義します。これを実現したのが、ext_svr_transport.c
です。
ext_svr_transport.c
の関数を、低レベルの通信プリミティブを呼び出す関数で置き換えます。これらは、メインプログラムのようなその他のターゲットから呼び出される関数です。ext_svr_transport.h
で定義されている全ての関数を実現しなければなりません。ユーザの実現は、ext_svr_transport.h
に定義されているプロトタイプに従わなければなりません。ext_svr_transport.c
のExtUserData
構造体に対する定義を与えます。この構造体は必須です。ExtUserData
はexternalモードの実現で必要ない場合は、1つのダミーフィールドをもつExtUserData
構造体を定義します。ext_svr_transport.c
でEXT_BLOCKING
条件文を定義します。EXT_BLOCKING
を0として定義します(シングルスレッドのアプリケーションに対して適しています)。EXT_BLOCKING
を1として定義します。ext_svr_transport.c
のEXT_BLOCKING
のコメントも参照してください。
ext_svr_transport
ソースコードモジュールは、コメントが付けられています。詳細は、これらのファイルを参照してください。
![]() | Externalモードのソースファイル | 複数のモデルの統合 | ![]() |