exponenta event banner

Класс Simulink.CodeImporter.CustomCode

Пакет: Simulink.CodeImporter

Укажите пользовательские параметры кода для Simulink.CodeImporter и sltest.CodeImporter классы

Описание

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

Создание

При создании объекта класса Simulink.CodeImporter, объект класса Simulink.CodeImporter.CustomCode автоматически создается как CustomCode свойство этого объекта. Не создавать объект класса Simulink.CodeImporter.CustomCode непосредственно.

Свойства

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

Примечание

Первые четыре свойства, перечисленные ниже (SourceFiles, InterfaceHeaders, IncludePaths, и Libraries) позволяет указать путь к файлу о местоположении пользовательского кода. Чтобы включить переносимость, укажите эту информацию как путь к файлу относительно папки, указанной в OutputFolder имущества соответствующего Simulink.CodeImporter объект, а не абсолютный путь.

Исходные файлы для импорта, указанные как массив ячеек символьного вектора или строковый массив. Поддерживаемые файлы включают .c и .cpp файлы. Каждое имя файла может быть указано как путь относительно папки, указанной в OutputFolder имущества соответствующего Simulink.CodeImporter или как абсолютный путь.

Предоставление значения для SourceFiles необязателен для Simulink.CodeImporter и необязательный для sltest.CodeImporter когда TestType является IntegrationTest.

Пример: {'foo.c', 'bar.c'}

Пример: [".\foo.c", "..\bar.c"]

Пример: fullfile(pwd, 'Src', 'foo.c')

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

Импортируемые заголовки интерфейса, определяемые как массив ячеек символьных векторов или строковый массив. Поддерживаемые файлы включают .h и .hpp файлы. Каждое имя файла может быть указано как путь относительно папки, указанной в OutputFolder имущества соответствующего Simulink.CodeImporter или как абсолютный путь. Заголовки интерфейсов должны содержать объявления функций и определения типов, которые необходимо включить в Simulink ®. Эти объявления и определения обычно содержатся в заголовке экспорта библиотеки кода Си.

Пример: {'foo.h', 'bar.h'}

Пример: [".\foo.h", "..\bar.h"]

Пример: fullfile(pwd, 'Hdr', 'foo.h')

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

Папки, содержащие включенные файлы заголовков для поиска синтаксическим анализатором, указанные как массив ячеек векторов символов или строковый массив. Каждый путь к папке может быть указан как путь относительно папки, указанной в OutputFolder имущества соответствующего Simulink.CodeImporter или как абсолютный путь.

Пример: {'.', '..\..'}

Пример: [".\Include1", "..\Include2"]

Пример: fullfile(pwd, 'Include1')

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

Библиотеки, содержащие пользовательский объектный код для связи, указанный как массив ячеек из векторов символов или строковый массив. Поддерживаемые файлы включают .obj, .dll, .lib, .so, .o, .a, и .dylib файлы. Каждое имя файла может быть указано как путь относительно папки, указанной в OutputFolder имущества соответствующего Simulink.CodeImporter или как абсолютный путь.

Предоставление библиотек является необязательным.

Пример: {'foo.lib', 'foo.dll'}

Пример: [".\foo.so", "..\bar.so"]

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

Определения макросов препроцессора, добавляемые в командную строку компилятора, задаются как массив ячеек символьных векторов или строковый массив. '-D' необязателен в определениях.

Пример: {'-D DEF1', '-D DEF2'}

Пример: ["DEF1", "DEF2"]

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

Пользовательский язык кода, указанный как 'C' или 'C++'. C и C++ являются единственными поддерживаемыми языками.

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

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

Пример: {'/O2' , '/Og'}

Пример: "-g"

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

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

Пример: {'/WX'}

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

Опция для включения глобальных переменных в качестве интерфейсов функций, заданная как логический скаляр. Если установлено значение trueглобальные переменные, к которым обращаются пользовательские функции кода, будут рассматриваться как интерфейсы функций в созданной библиотеке Simulink. См. разделы Блокировка вызывающего абонента Call C и Определение портов и Включение глобальных переменных в качестве функциональных интерфейсов.

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

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

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

Примеры

свернуть все

Создание объекта класса Simulink.CodeImporter. Установка свойств его CustomCode для указания пользовательского кода для импорта в Simulink.

obj = Simulink.CodeImporter("pumpController");

obj.OutputFolder = ".";

obj.CustomCode.InterfaceHeaders = ["pumpController.h"];
obj.CustomCode.IncludePaths = ["./include"];
obj.CustomCode.SourceFiles = ["src/pumpController.c" "src/utils.c"];

Представлен в R2021a