exponenta event banner

Класс Simulink.CodeImporter.SimulinkPortSportSpecification

Пакет: Simulink.CodeImporter

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

Описание

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

Этот класс аналогичен FunctionPortSpecification класс, используемый для настройки свойств блока C Caller вне контекста Importer кода 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