メインコンテンツ

getGlobalArg

C Caller ブロックのグローバル変数のオブジェクト定義を取得する

R2021a 以降

説明

GlobalArg = getGlobalArg(PortSpecObj, globalVariableName) (ここで、PortSpecObj はクラス Simulink.CodeImporter.SimulinkPortSpecification のオブジェクト) は、指定したグローバル引数の FunctionArgument オブジェクトを作成します。C Caller ブロックを使用するモデルでグローバル変数を使用するには、[コンフィギュレーション パラメーター][シミュレーション ターゲット] から [カスタム コードのグローバルを関数インターフェイスとして有効にする] 設定を有効にします。

入力引数

すべて展開する

端子仕様。Simulink.CodeImporter.SimulinkPortSpecification オブジェクトのハンドルとして指定します。

グローバル変数の名前。文字ベクトルまたは string スカラーとして指定します。

データ型: char | string

出力引数

すべて展開する

C Caller ブロックに関連付けられたグローバル引数オブジェクト。FunctionArgument オブジェクトとして返されます。

すべて展開する

Simulink® コード インポーターで指定した関数のグローバル変数のプロパティにアクセスします。

コード インポーター オブジェクトを作成します。

obj = Simulink.CodeImporter;

ライブラリ ファイル名と出力フォルダーを設定します。

obj.LibraryFileName = "pumpController";
obj.OutputFolder = ".";

インポートするカスタム コードを設定します。

obj.CustomCode.InterfaceHeaders = ["pumpController.h"];
obj.CustomCode.IncludePaths = ["./include"];
obj.CustomCode.SourceFiles = ["src/pumpController.c" "src/utils.c"];

グローバル変数を関数インターフェイスとして許可します。

obj.CustomCode.GlobalVariableInterface = true;

カスタム コードを解析して、関数を構成します。

parse(obj);
fcn = getFunctions(obj.ParseInfo, "InitFunction");

InitFunction で使用されているグローバル引数を取得および構成します。

timeout = getGlobalArg(fcn.PortSpecification, 'timeout');
timeout.label = "TimeoutValue";

バージョン履歴

R2021a で導入