Simulink.CodeImporter.CustomCode class

Пакет: Simulink .CodeImporter

Задайте пользовательские настройки кода для Simulink.CodeImporter и sltest.CodeImporter классы

Описание

The 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 Caller Block и Specify Ports и Включите глобальные переменные как функциональные интерфейсы.

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

Размещение массива по умолчанию для пользовательских функций кода для доступа к массивам входных параметров, заданный как NotSpecified, RowMajor, ColumnMajor, или Any. Вы можете переопределить значение по умолчанию для отдельной функции с помощью ArrayLayout свойство Simulink.CodeImporter.Function объект, соответствующий этой функции. Матричные данные, переданные в ваши функции 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