Simulink.CodeImporter class

Пакет: Simulink

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

Описание

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

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

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

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

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 or 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