Real-Time Workshop User's Guide | ![]() ![]() |
Host (ext_comm)ソースファイル
ext_comm
コンポーネントのソースファイルは、ディレクトリmatlabroot
/rtw/ext_mode
にあります。
ext_comm.c
このファイルは、externalモード通信のコアです。ターゲットとSimulink間のリレーステーションとして動作します。ext_comm.c
は、共有データ構造体ExternalSim
によってSimulinkと通信を行います。トランスポート層の呼び出しを使ってターゲットと通信を行います。
ext_comm
により行われるタスクは、ターゲットとの接続の確立、パラメータのダウンロード、ターゲットとの接続の終了が含まれます。
ext_transport.c
このファイルは、必要なトランスポート層関数を実現します(ext_transport.c
ext_transport_share.hを含みます)。Real-Time Workshopに付属するext_transport.c
のバージョンは、recv()
, send()
, socket()
を含むTCP/IP関数を利用します。
ext_main.c
このファイルは、externalモードに対するMEX-ファイルラッパーです。ext_main
は、標準のmexFunction
呼び出しによって、Simulinkとのインタフェースを行います (mexFunctionに関する情報については、MATLABのオンラインドキュメントの「External Interfaces」を参照)。ext_main
は、リクエストをSimulinkからext_comm
に送信する関数ディスパッチャesGetAction
を含みます。
xt_convert.c
このファイルは、ホストからターゲットフォーマット(およびその反対)にデータを変換するための関数を含みます。関数は、バイト-スワッピング(bigからlittle- endian)、非IEEE浮動小数点数からIEEE倍精度への変換、その他の変換を含みます。これらの関数は、ext_comm.c
によって、また、直接Simulinkから(関数のポインタによって)呼ばれます。
注意
スタムトランスポート層を実現するためにext_convert をカスタマイズする必要はありません。しかし、意図したターゲット用にext_convert をカスタマイズすることは必要です。たとえば、ターゲットがfloat ext_convert はTIからIEEEへの変換を行うように変更しなければなりません。
|
extsim.h
このファイルは、ExternalSim
データ構造体とアクセスマクロを定義します。この構造体は、Simulinkとext_comm.c
との間の通信用に用いられます。
extutil.h
このファイルは、assert
マクロのコンパイル用の条件文のみを含みます。
ターゲット(サーバ)のソースファイル
これらのファイルは、ランタイムインタフェースの一部分で、model
.exe
実行ファイルにリンクされます。これらは、ディレクトリmatlabroot
/rtw/c/src
にあります。
ext_svr.c
ext_svr.c
は、ホスト上のext_comm.c
と同じですが、一般的により多くのタスクを行います。これは、ホストと生成コード間のリレーステーションとして動作します。ext_comm.c
と同様に、ext_svr.c
は、ホストとの接続の確立や終了のようなタスクを行います。ext_svr.c
は、ダウンロードされたパラメータをターゲットモデルに書き込んだり、ターゲットのデータバッファからデータを抽出したり、それをホストに送信するバックグランドタスク関数を含みます。
Real-Time Workshopに付属するバージョンのext_svr.c
は、recv()
, send()
, socket()
を含むTCP/IP関数を利用します。
ext_svr_transport.c
このファイルは、必要なトランスポート層関数を実現します(ext_svr_transport.c
は、クライアントおよびサーバの両方に共通な関数を含むext_transport_share.h
を含みます)。Real-Time Workshopに付属するバージョンのext_svr_transport.c
は、recv()
, send()
, socket()
を含むTCP/IP関数を利用します。
updown.c
updown.c
は、ターゲットモデルとの相互作用の詳細を取り扱います。パラメータのダウンロード中に、updown.c
は、新規のパラメータをモデルのパラメータベクトルにインストールする作業を行います。データのアップロードに対して、updown.c
は、モデルのblockio
ベクトルからデータを抽出し、データをアップロードバッファに書き出す関数を含みます。updown.c
は、ext_svr.c
とモデルコード(例, grt_main.c
)の両方にサービスを提供します。これは、高い優先度をもつモデルの実行の一部分として呼ばれるコードと同様に、ext_svr.c
のバックグランドタスクによって呼び出されるコードを含みます。
t_info.h
and model
.dt
これらのファイルは、データタイプの遷移情報を含み、それにより、異なるコンピュータアーキテクチャにおいてマルチデータタイプの構造体にアクセスが可能です。この情報は、ホストとターゲットのフォーマットのデータ変換で利用されます。
updown_util.h
このファイルは、assert
マクロのコンパイル用の条件文のみを含みます。
その他のファイル
xt_share.h
ホストとターゲットモジュールの両方で必要なメッセージコードの定義やその他の定義を含みます。
ext_transport_share.h
トランスポート層のホストとターゲットモジュールの両方で必要な関数やデータ構造体を含みます。Real-Time Workshopに付属するバージョンのext_transport_share.h
は、TCP/IP通信固有です。
![]() | Externalモード通信の概要 | トランスポート層の実現のためのガイドライン | ![]() |