Real-Time Workshop User's Guide | ![]() ![]() |
リアルタイムオブジェクト
他のReal-Time Workshopコードフォーマットと異なり、ERT生成コードは、SimStruct
を使いません。代わりに、ERTターゲットは、リアルタイムオブジェクトと呼ばれるデータ構造体を使います。リアルタイムオブジェクトは、SimStruct
のように、モデルの情報と共に、基本的なタイミングとスケジューリングデータを含みます。リアルタイムオブジェクトは、SimStruct
よりもコンパクトで、コードサイズが著しく削減されます。
リアルタイムオブジェクトは、モデル固有のデータ構造体です。特定のモデルに対するリアルタイムオブジェクトは、model_export.h
で定義されます。
ユーザコードは、リアルタイムオブジェクトのフィールドを直接参照しません。Real-Time Workshopは、リアルタイムオブジェクトに対するアクセスマクロを提供します。これらのマクロは、matlabroot
/rtw/c/ert/
ertformat.hに定義されています。マクロは、他のコードフォーマットと共に用いられるSimStruct
と文法的かつ機能的に同じです。ユーザコードと単一のモデルとのインタフェースを行う場合には、一般的にリアルタイムオブジェクトをRT_OBJとして参照し、以下のコードのようにマクロを使ってRT_OBJにアクセスします。
#include "ertformat.h" const char_T *errStatus = ssGetErrorStatus(RT_OBJ);
ユーザコードと複数のモデルのリアルタイムオブジェクトとのインタフェースの方法の例は、「エントリポイントを直接呼び出す方法」を参照してください。
ロギングオブジェクトは、リアルタイムオブジェクトのサブオブジェクトです。このデータ構造体は、MAT-file logging コード生成オプションが利用可能な場合に生成コード内で用いられます。
![]() | ERTデータ構造体とコードモジュール | ERTコードモジュール | ![]() |