exponenta event banner

Класс Simulink.CodeImporter

Пакет: Simulink

Импорт пользовательского кода C/C + + в Simulink

Описание

Используйте Simulink.CodeImporter класс для импорта пользовательского кода C/C + + в Simulink ® для моделирования, проверки и проверки. Экземпляры этого класса используются для указания пользовательского кода для импорта в Simulink.

Класс включает следующие методы:

  • save - Сохранение параметров импорта в текстовом файле формата JSON

  • load - Загрузка параметров импорта из сохраненного файла параметров импорта

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

Создание

Описание

obj = Simulink.CodeImporter() создает экземпляр CodeImporter с LibraryFileName свойство имеет значение "untitled".

obj = Simulink.CodeImporter(LibName), где LibName - имя файла, выбранное пользователем и указанное как вектор строки или символа, создает экземпляр CodeImporter с LibraryFileName свойство имеет значение LibName.

Свойства

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

Имя файла библиотеки Simulink и созданных артефактов, созданных для импортированного кода, заданного как строка или символьный вектор. Имя должно быть допустимым именем переменной MATLAB ®. Одно и то же имя файла используется с различными расширениями для словаря данных и других артефактов, создаваемых при импорте кода.

Пример: "pumpController"

Типы данных: string | character vector

Расположение созданного файла библиотеки и созданных артефактов, указанных как строка или символьный вектор. Если оставить поле пустым, используется текущая папка MATLAB.

Расположения файлов, которые являются частью CustomCode может быть указано относительно этой папки.

Пример: "C:\HeatPump\Controller"

Типы данных: string | character vector

Файлы кода C или C++ и связанные свойства для импорта, указанные как объект класса Simulink.CodeImporter.CustomCode. Это свойство используется для указания параметров импорта кода, таких как исходные и заголовочные файлы, пути к папкам, библиотеки, а также флаги компилятора и компоновщика. Для получения дополнительной информации см. Simulink.CodeImporter.CustomCode.

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

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

  CustomCode with properties:

                SourceFiles: ["src/pumpController.c"    "src/utils.c"]
           InterfaceHeaders: "pumpController.h"
               IncludePaths: "./include"
                  Libraries: [1×0 string]
                    Defines: [1×0 string]
                   Language: "C"
              CompilerFlags: [1×0 string]
                LinkerFlags: [1×0 string]
    GlobalVariableInterface: 0
        FunctionArrayLayout: NotSpecified

Сведения о проанализированном пользовательском коде, указанном как объект класса Simulink.CodeImporter.ParseInfo. Это свойство доступно только для чтения. Для получения информации о пользовательском коде синтаксический анализ должен быть успешным. Для получения дополнительной информации см. Simulink.CodeImporter.ParseInfo.

Пример:

s = obj.parse;
obj.ParseInfo
ans = 

  ParseInfo with properties:

               Success: 1
    AvailableFunctions: ["Controller"    "setFanTempThreshold"    "setPumpTempThreshold"]
        EntryFunctions: ["Controller"    "setFanTempThreshold"    "setPumpTempThreshold"]
        AvailableTypes: "pump_control_bus"
                Errors: []

Дополнительные параметры, используемые импортером кода при импорте для создания библиотеки, указанные как объект класса Simulink.CodeImporter.Options. Этот объект используется для изменения значений по умолчанию для размера аргумента, передаваемого указателем на функцию, и имени браузера библиотеки Simulink. Для получения дополнительной информации см. Simulink.CodeImporter.Options.

Пример:

>> obj.Options
ans = 

  Options with properties:

    PassByPointerDefaultSize: "-1"
           CreateTestHarness: 0
          LibraryBrowserName: ""
>> obj.Options.LibraryBrowserName = "Controller Library";
>> obj.Options
ans = 

  Options with properties:

    PassByPointerDefaultSize: "-1"
           CreateTestHarness: 0
          LibraryBrowserName: "Controller Library"

Методы

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

Примеры

Импорт пользовательского кода

Укажите расположение и параметры пользовательского кода.

%% Create code importer object
obj = Simulink.CodeImporter('PumpController');

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

%% Specify name for Library Browser
obj.Options.LibraryBrowserName = "Controller Library";

Разбор пользовательского кода и проверка результатов.

%% Parse custom code
s = obj.parse;
obj.ParseInfo
ans = 

  ParseInfo with properties:

               Success: 1
    AvailableFunctions: ["Controller"    "setFanTempThreshold"    "setPumpTempThreshold"]
        EntryFunctions: ["Controller"    "setFanTempThreshold"    "setPumpTempThreshold"]
        AvailableTypes: "pump_control_bus"
                Errors: []

Импорт проанализированного кода в Simulink

%% Import code
s = obj.import;
Представлен в R2021a