Simulink.CodeImporter.SimulinkPortSpecification class

Пакет: Simulink .CodeImporter

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

Описание

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

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

The 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