Simulink.CodeImporter.ParseInfo.getFunctions

Получите подробную информацию относительно функций в пользовательском коде

    Описание

    пример

    fcnobjs = obj.ParseInfo.getFunctions(), где obj объект класса Simulink.CodeImporter или sltest.CodeImporter, возвращает массив объектов класса Simulink.CodeImporter.Function с подробной информацией обо всем Simulink® совместимые функции в пользовательском коде.

    Примечание

    Если ваш код имеет функцию с указателем выход, задайте размер выхода путем установки спецификации порта в возвращенном функциональном объекте.

    fcnobjs = obj.ParseInfo.getFunctions(fcnlist) возвращает массив объектов класса Simulink.CodeImporter.Function с подробной информацией о функциях пользовательского кода, заданных в fcnlist.

    Примеры

    свернуть все

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

    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: []
    
    fcnobjs = parseobj.getFunctions()
    
    fcnobjs = 
    
      1×3 Function array with properties:
    
        Name
        CPrototype
        PortSpecification
        IsEntry
        IsDefined
        IsStub
        ArrayLayout
        IsDeterministic
    
    >> fcnobjs(1)
    
    ans = 
    
      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

    Входные параметры

    свернуть все

    Имена функций в пользовательском коде, о котором можно получить информацию в виде массива ячеек из символьных векторов или массива строк. fcnlist должен быть ограничен именами, содержавшимися в obj.ParseInfo.AvailableFunctions, то есть, функции, совместимые с Simulink в заданном пользовательском коде.

    Типы данных: cell array of character vectors | string array

    Выходные аргументы

    свернуть все

    Информация о функциях в пользовательском коде, возвращенном как массив Simulink.CodeImporter.Function объекты, где каждый объект соответствует одной функции. Каждый объект включает имя функции, C прототип, спецификация порта, является ли функция функцией точки входа, и задана ли функция в пользовательском коде. Смотрите Simulink.CodeImporter.Function.

    Введенный в R2021a