Simulink.CodeImporter.Function class

Пакет: Simulink.CodeImporter

Доступ и конфигурирует подробную информацию о проанализированных функциях пользовательского кода

Описание

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

Simulink.CodeImporter.Function классом является handle класс.

Создание

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

Свойства

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

Имя функции, возвращенное как строковый скаляр.

Пример: "Controller"

Типы данных: string scalar

C моделируют для функции, возвращенной как строковый скаляр.

Пример: "pump_control_bus Controller(real_T Tset, real_T Troom_in);"

Типы данных: string scalar

Спецификация порта функции в виде объекта класса Simulink.CodeImporter.SimulinkPortSpecification.

Является ли функция функцией точки входа, возвращенной как логический скаляр. Функция точки входа не вызвана другими функциями в пользовательском коде.

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

Детерминирована ли функция в виде логического скаляра. Детерминированная функция всегда производит те же выходные параметры для тех же входных значений. Определение функции как детерминированная позволяет соответствующему блоку C Caller использоваться в Для Каждой подсистемы и со временем непрерывной выборки и оптимизирует использование блока в условном входном выполнении ветви. Смотрите Детерминированные функции.

Заблокирована ли функция, возвращенная как логический скаляр. Этот скаляр указывает, был ли для модульного теста тупик для неопределенных символов сгенерирован для функции (требуемая лицензия Simulink Test™).

Размещение массивов для функции, возвращенной как NotSpecified, ColumnMajor, RowMajor, или Any. Если NotSpecified, затем настройка по умолчанию для пользовательского кода, как задано в FunctionArrayLayout свойство соответствующего SimulinkCode.CustomCode объект используется. В противном случае значение, заданное для функции, заменяет значение по умолчанию.

Типы данных: enum

Методы

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

Примеры

свернуть все

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

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 code
obj.parse;
parseobj = obj.ParseInfo
ans = 

  ParseInfo with properties:

               Success: 1
    AvailableFunctions: ["Controller"    "setFanTempThreshold"    "setPumpTempThreshold"]
        EntryFunctions: ["Controller"    "setFanTempThreshold"    "setPumpTempThreshold"]
        AvailableTypes: "pump_control_bus"
                Errors: []
fcnobj = parseobj.getFunctions(["Controller"])
fcnobj = 

  Function with properties:

                 Name: "Controller"
           CPrototype: "pump_control_bus Controller(real_T Tset, real_T Troom_in);"
    PortSpecification: [1×1 Simulink.CodeImporter.SimulinkPortSpecification]
              IsEntry: 1
            IsDefined: 1
               IsStub: 0
          ArrayLayout: NotSpecified
      IsDeterministic: 0

Введенный в R2021a