非バーチャル バスに対して生成されたコードの検証
この例では、非バーチャル バスが、あるモデルに対して生成されたコードにどのように表示されるかを示します。
非バーチャル バスを含むモデル例を開いてシミュレーションします。
mdl = "NonvirtualBusCode";
open_system(mdl)
sim(mdl);
モデルのコードを生成するには、Simulink ツールストリップの [アプリ] タブの [アプリ] ギャラリーで、[Simulink Coder] をクリックします。[C コード] タブが開いたら、[コード生成] をクリックします。あるいは、"Ctrl+B" を押すか以下のコマンドを入力します。
slbuild(mdl)
### Searching for referenced models in model 'NonvirtualBusCode'. ### Total of 1 models to build. ### Starting build procedure for: NonvirtualBusCode ### Successful completion of code generation for: NonvirtualBusCode Build Summary Top model targets: Model Build Reason Status Build Duration ======================================================================================================= NonvirtualBusCode Information cache folder or artifacts were missing. Code generated. 0h 0m 20.955s 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 22.306s
生成されたファイルを確認するには、NonvirtualBusCodeGenModel_grt_rtw
フォルダーを開きます。
NonvirtualBusCode_types.h
は、Simulink.Bus
オブジェクトを構造体として定義します。
typedef struct { real_T a; real_T b; real_T c; } BusObject;
NonvirtualBusCode.h
は、BusObject
struct を使用して Unit Delay ブロックを定義します。
typedef struct { BusObject UnitDelay_DSTATE; /* '<Root>/Unit Delay' */ } DW_NonvirtualBusCode_T;
NonvirtualBusCode.c
は、非バーチャル バスを Outport ブロックに渡す、Unit Delay ブロックを実装します。
NonvirtualBusCode_Y.Out1 = NonvirtualBusCode_DW.UnitDelay_DSTATE;
参考
ブロック
オブジェクト
トピック
- 合成インターフェイスのガイドライン
- バス オブジェクトでのバス プロパティの指定
- 生成されたコードにおける構造体へのデータの整理 (Simulink Coder)