exponenta event banner

Упаковка интерфейса кода

Описание

Выберите упаковку для сгенерированного интерфейса кода C или C++.

Категория: Создание кода > Интерфейс

Настройки

По умолчанию: Nonreusable function если параметр Language имеет значение C; C++ class если для параметра Language установлено значение C++

C++ class

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

Nonreusable function

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

Reusable function

Создайте повторно используемый многоэкземплярный код, который повторно вводится следующим образом:

  • Для модели на основе GRT генерируется model.c исходный файл содержит функцию распределения, которая динамически распределяет данные модели для каждого экземпляра модели. Для модели на основе ERT можно использовать параметр Использовать динамическое распределение памяти для инициализации модели для управления тем, была ли создана функция распределения.

  • Сгенерированный код передает структуру данных модели в реальном времени по ссылке в качестве аргумента model_step и другие функции точки входа модели.

  • Структура данных модели в реальном времени экспортируется с помощью model.h файл заголовка.

Для модели на основе ERT можно использовать параметр Pass root-level I/O для управления передачей входных и выходных аргументов корневого уровня в повторно используемые функции точки входа модели. Они могут быть включены в структуру данных модели в реальном времени, которая передается функциям, передается как отдельные аргументы или передается как ссылки на структуру ввода и структуру вывода.

Совет

  • Точки входа экспортируются с помощью model.h. Чтобы вызвать функции точки входа из рукописного кода, добавьте #include model.h директива к коду.

  • При выборе Reusable function, генератор кода формирует указатель на объект модели в реальном времени (model_M).

  • При выборе Reusable function, генератор кода может генерировать код, который компилируется, но не вводится повторно. Например, если сигнал, структура DWork или данные параметра имеют класс хранения, отличный от Autoсоздаются глобальные структуры данных.

Зависимости

  • Стоимость C++ class доступен только в том случае, если для параметра Language установлено значение C++.

  • Выбор Reusable function или C++ class включает диагностику ошибок многоэкземплярного кода.

  • Для целевого файла системы на основе ERT выберите Reusable function включает параметры Pass root-level I/O as и Use dynamic memory allocation for model initialization.

  • Для включения параметра Classic call interface выберите Nonreusable function.

  • Для целевого файла системы на основе ERT выберите C++ class включает следующие элементы управления конфигурацией модели для настройки интерфейса класса модели:

    • Подчиненная область видимости элемента данных/управления доступом

    • Параметры Создать деструктор и Использовать динамическое выделение памяти для создания экземпляра блока модели

  • Для целевого файла системы на основе ERT можно выбрать Reusable function со статическим ert_main.c при выполнении следующих действий:

    • Задать параметр Pass root-level I/O для Part of model data structure.

    • Выберите параметр Использовать динамическое выделение памяти для инициализации модели.

  • Для целевого файла системы на основе ERT нельзя выбрать Reusable function если вы:

    • Настройка model_step прототип функции

    • Выбор параметра блока подсистемы Function с отдельными данными

    • Использование подсистемы, которая

      • Имеет несколько портов, совместно использующих источник

      • Имеет порт, который используется несколькими экземплярами подсистемы и имеет разное время выборки, типы данных, сложность, состояние кадра или размеры для всех экземпляров.

      • Имеет выход, помеченный как глобальный сигнал

      • Для каждого экземпляра содержит идентичные блоки с различными именами или параметрами

  • Выбор Reusable function не изменяет код, сгенерированный для подсистем вызова функций.

Информация командной строки

Параметр: CodeInterfacePackaging
Текст: символьный вектор
Значение: 'C++ class' | 'Nonreusable function' | 'Reusable function'
По умолчанию: 'Nonreusable function' если TargetLang имеет значение 'C'; 'C++ class' если TargetLang имеет значение 'C++'

Рекомендуемые параметры

ПриложениеНастройка
ОтладкаНикакого воздействия
ОтслеживаемостьНикакого воздействия
ЭффективностьReusable function или C++ class
Меры безопасностиНикакого воздействия

См. также

Связанные темы