Simulink.CodeImporter.CustomCode class

Пакет: 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, .soOA, и .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. Смотрите Вызов C Блок Вызывающей стороны и Задайте Порты и Включите глобальные переменные, когда функция взаимодействует через интерфейс.

Типы данных: 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