| 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_commMEX-ファイルを再ビルドします。これは、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モードのソースファイル | 複数のモデルの統合 | ![]() |