C Caller ブロックに対する Simulink の string の使用
この例では、C Caller ブロックに Simulink® の固定長 string と動的な string を使用する方法について説明します。この例のブロックは、C の文字列 (char* または char[ ]) を使用して入出力を宣言する C 関数を呼び出します。C Caller ブロックは、Simulink® の string を入力端子で受け取り、出力端子で出力します。
C の文字列を使用するブロック端子に Simulink の string を使用するモデルを開きます。
mdl = "SimulinkStringCCaller.slx";
open_system(mdl)
このモデルは次の C の文字列のプロトタイプを使用します。
char [10] :
void strConcatFcnArg(const char s3[10], const char s4[10], char dst[20])
char* :
const char* strConcatFcnReturn(const char* s1, const char* s2);
Fixed Length String
このコンポーネントで囲まれているブロックは、strConcatFcnArg 関数を呼び出します。C Caller ブロックは、Simulink® の固定長 string を入力端子で受け取り、連結された string を出力します。ブロックを Simulink® の string 用に構成するには、[ブロック パラメーター] ダイアログ ボックスの [端子仕様] テーブルで、入力端子と出力端子ごとに [タイプ] を stringtype(maximum_length) に設定します。
Simulink では、C の文字列について末尾の null 文字 (\0) を自動的に考慮します。そのため、C の文字列の長さが n+1 の場合、使用できる Simulink の string の最大長は n です。詳細については、Simulink の string と null 文字を参照してください。
ここで、このモデルでは、Simulink の stringtype(9) 型の固定長 string が C の入力文字列 char s3[10] に使用されます。

Dynamic String
このコンポーネントで囲まれているブロックは、strConcatFcnReturn 関数を呼び出します。C Caller ブロックは、Simulink® の動的な string を入力端子で受け取り、連結された string を出力します。ブロックを Simulink® の string 用に構成するには、[ブロック パラメーター] ダイアログ ボックスの [端子仕様] テーブルで、入力端子と出力端子ごとに [型] を string に設定します。

シミュレーションの実行と出力データのログ記録
シミュレーションを実行し、出力データをSimulink.SimulationOutputオブジェクトに記録します。
out = sim(mdl);
ログ記録されたデータにはドット表記を使用してアクセスできます。
ConcatFcnReturnOutput = out.yout{1}.Values.Data;
ConcatFcnArgOutput = out.yout{2}.Values.Data;