sltest.CodeImporter class

Импорт кода C or C++ в Simulink для проверки

Описание

Использование объектов sltest.CodeImporter класс для импорта библиотеки на C или подмножества библиотеки в Simulink® для моделирования и проверки. При импорте кода создаются библиотека Simulink и тестовый файл. Каждая функция, совместимая с C, преобразуется в блок C Caller в библиотеке, и каждый блок C Caller по умолчанию имеет подключённую внутреннюю тестовую обвязку. Созданный тестовый файл MLDATX содержит тесты для каждой импортированной функции. Для модульных тестов можно импортировать только код С Кроме того, для модульных тестов создается песочница для изоляции импортированного кода С

Примечание

Если ваша библиотека кода содержит методы класса C++, в Simulink с помощью CodeImporter импортируются только методы C++, упакованные в допустимые оболочки функций C.

Также можно использовать мастер для настройки и импорта кода в Simulink. В Диспетчере тестов откройте мастер с помощью New > Test for C/C++ Code.

The sltest.CodeImporter класс является handle класс.

Атрибуты класса

HandleCompatible
true

Для получения информации об атрибутах класса см. раздел «Атрибуты класса».

Создание

Описание

пример

codeimport_obj = sltest.CodeImporter создает объект импортера кода Simulink Test™ с untitled как имя файла библиотеки Simulink и создает четыре дополнительных объекта, доступ к которым осуществляется с помощью свойств SandboxSettings, ParseInfo и CustomCode и Options.

пример

codeimport_obj = sltest.CodeImporter(libraryfile) создает объект импортера кода и использует заданную libraryfile как имя созданной библиотеки Simulink. Он устанавливает свойство LibraryFileName равным libraryfile.

Свойства

расширить все

Тип теста, заданный как строковый или символьный вектор. Чтобы протестировать подмножество вашей пользовательской библиотеки кода в изоляции, используйте "UnitTest". Код для модульного теста может быть неполным и может иметь неопределенные символы. The CodeImporter автоматически создает заглушки для неопределенных символов. Когда вы задаете "UnitTest", также создается песочница. Чтобы протестировать целую библиотеку кода, используйте "IntegrationTest".

Пример: codeimport_obj.TestType = "IntegrationTest"

Атрибуты:

GetAccess
public
SetAccess
public

Строение Sandbox для модульных тестов, заданная как SandboxSettings объект. Это свойство применяется только в том случае, если TestType является UnitTest. Если TestType является IntegrationTestПараметры песочницы игнорируются. A default SandboxSettings создается при создании объекта импортера кода. Перед использованием createSandbox метод, можно изменить значения свойств по умолчанию. Для получения информации об изменении режима песочницы, копировании исходных файлов в папку песочницы и удалении прагм и свойств заголовка определения переменной смотрите sltest.CodeImporter.SandboxSettings.

Пример: codeimport_obj.SandboxSettings.CopySourceFiles = true

Атрибуты:

GetAccess
public
SetAccess
private

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

  • Имя библиотеки Simulink myCodeTest.slx.

  • Имя словаря данных myCodeTest.sldd.

  • Имя папки песочницы myCodeTest_sandbox.

  • Тестовый файл myCodeTest.mldatx.

Если имя файла библиотеки не задано, оно по умолчанию равняется untitled.

Пример: codeimport_obj.LibraryFileName = "myCodeTest"

Атрибуты:

GetAccess
public
SetAccess
public

Папка для созданной библиотеки и связанных файлов программных продуктов, заданная как строковый или символьный вектор. По умолчанию это пустая строка, которая интерпретируется как текущая рабочая папка. Можно также задать OutputFolder использование MATLAB® команды path, заключенные в $, таких как $pwd$, которая является текущей рабочей папкой.

Пример: codeimport_obj.OutputFolder = "C:/myMATLABFiles/CodeImports"

Пример: codeimport_obj.OutputFolder = "$pwd"

Атрибуты:

GetAccess
public
SetAccess
public

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

Атрибуты:

GetAccess
public
SetAccess
private

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

Атрибуты:

GetAccess
public
SetAccess
private

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

Атрибуты:

GetAccess
public
SetAccess
private

Методы

расширить все

Примеры

свернуть все

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

  1. Создайте sltest.CodeImporter объект и задайте myCodeTest как имя файла библиотеки Simulink.

    codeimport_obj = sltest.CodeImporter("myCodeTest");

  2. Присвойте исходные файлы CustomCode свойство.

    codeimport_obj.CustomCode.SourceFiles = {"myCode1.c"};

  3. Создайте песочницу. The createSandbox метод автоматически создает файлы заглушек для любых неопределенных символов.

    codeimport_obj.createSandbox;
    После того, как вы создаете песочницу, можно просмотреть созданные заглушки и, при желании, вручную заглушить символы, используя файлы в manualstub подпапка sandbox папка. Затем повторите createSandbox команда для обновления песочницы.

  4. Проанализируйте сгенерированную песочницу

    codeimport_obj.parse;

  5. Импортируйте код в модель библиотеки Simulink. The import метод создает тестовый файл по умолчанию.

    codeimport_obj.import;

  6. Откройте Диспетчер тестов. Затем откройте созданную myCodeTest.mldatx тестовый файл и запуск созданных тестов.

Этот пример предполагает, что у вас есть существующая библиотека кода C or C++ для тестирования и что все методы C++ находятся в функциях оболочки C.

  1. Создайте sltest.CodeImporter объект и задайте myCodeLibTest как имя библиотеки Simulink. Установите TestType на IntegrationTest.

    codeimport_obj = sltest.CodeImporter("myCodeLibTest");
    codeimport_obj.TestType = "IntegrationTest";

  2. Создайте CustomCode объект, который задает заголовочные файлы. Использование custcode.<propertyname> = <value> синтаксис для задания других типов файлов и свойств. Затем присвойте CustomCode объект для CustomCode свойство.

    codeimport_obj.CustomCode.SourceFiles = {"myCode1.c", "myCode2.c"};
    codeimport_obj.InterfaceHeaders = {"myCode_a.h","myCode_b.h"};

  3. Проанализируйте указанный код.

    codeimport_obj.parse;

  4. Импортируйте код в модель библиотеки Simulink. The import метод создает тестовый файл по умолчанию.

    codeimport_obj.import;

  5. Откройте Диспетчер тестов. Затем откройте созданную myCodeLibTest.mldatx тестовый файл и запуск созданных тестов.

Введенный в R2021a