exponenta event banner

класс sltest.CodeImporter

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

Описание

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

Примечание

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

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

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

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

HandleCompatible
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Создание

Описание

пример

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

пример

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

Свойства

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

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

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

Атрибуты:

GetAccess
public
SetAccess
public

Конфигурация песочницы для модульных тестов, указанная как SandboxSettings объект. Это свойство применяется только в том случае, если TestType является UnitTest. Если TestType является IntegrationTest, параметры песочницы игнорируются. Дефолт 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 ®, заключенные в$, такие как $pwd$, которая является текущей рабочей папкой.

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

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

Атрибуты:

GetAccess
public
SetAccess
public

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

Атрибуты:

GetAccess
public
SetAccess
private

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

Атрибуты:

GetAccess
public
SetAccess
private

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

Атрибуты:

GetAccess
public
SetAccess
private

Методы

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

Примеры

свернуть все

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

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

    codeimport_obj = sltest.CodeImporter("myCodeTest");

  2. Назначение исходных файлов CustomCode собственность.

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

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

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

  4. Анализ созданной песочницы

    codeimport_obj.parse;

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

    codeimport_obj.import;

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

В этом примере предполагается, что имеется библиотека кодов C или 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. import создает тестовый файл по умолчанию.

    codeimport_obj.import;

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

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