Simulink.CodeImporter.SimulinkPortSpecification class

Пакет: Simulink.CodeImporter

Сконфигурируйте спецификацию порта для импортированного пользовательского кода

Описание

Сконфигурируйте спецификацию порта для аргументов функции пользовательского кода, импортированных, когда C Caller блокируется через Simulink.CodeImporter или sltest.CodeImporter экземпляры класса, то есть, конфигурируют, как интерфейсы C/C++ сопоставляют с интерфейсами Simulink® для функций пользовательского кода.

Этот класс походит на FunctionPortSpecification класс, который используется, чтобы сконфигурировать свойства блока C Caller вне контекста Средства импорта Simulink Кода. Свойства и методы этого класса ведут себя так же к подобно названным свойствам и методам FunctionPortSpecification класс.

SimulinkPortSpecification классом является handle класс.

Создание

Один или несколько объектов этого класса автоматически создаются, когда вы вызываете getFunctions метод объекта класса Simuink.CodeImporter.ParseInfo. Один Simulink.CodeImporter.SimulinkPortSpecification объект создается для каждой функции в проанализированном пользовательском коде для который getFunctions вызывается как PortSpecification свойство Function объект, соответствующий этой функции. Не создавайте объект класса Simulink.CodeImporter.SimulinkPortSpecification непосредственно.

Свойства

развернуть все

Спецификация порта для входных параметров в виде FunctionArgument Object.

Спецификация порта для функционального возвращаемого аргумента в виде скаляра или пустого FunctionArgument Object.

Спецификация порта для глобальных переменных пользовательского кода, используемых в качестве аргументов функции в виде скаляра или пустого FunctionArgument Object.

Методы

развернуть все

Примеры

свернуть все

Задайте и проанализируйте пользовательский код, затем настройте спецификацию порта прежде, чем импортировать в Simulink.

%% Create code importer object
obj = Simulink.CodeImporter;

%% Set library file name and output folder
obj.LibraryFileName = "pumpController";
obj.OutputFolder = ".";

%% Set the custom code to import
obj.CustomCode.InterfaceHeaders = ["pumpController.h"];
obj.CustomCode.IncludePaths = ["./include"];
obj.CustomCode.SourceFiles = ["src/pumpController.c" "src/utils.c"];

%% Parse custom code and configure function
obj.parse();
fcn = obj.ParseInfo.getFunctions("Controller");
fcn.PortSpecification.ReturnArgument.Label = "control_out";

fcn.PortSpecification.ReturnArgument
ans = 

  FunctionArgument with properties:

          Name: 'out'
    PortNumber: 1
          Size: '1'
          Type: 'Bus: pump_control_bus'
         Label: 'control_out'
         Scope: 'Output'

Введенный в R2021a