Выберите упаковку для сгенерированного интерфейса C или Кода С++.
Генерация кода Category:> Интерфейс
Значение по умолчанию: Nonreusable function
, если Language установлен в C
; C++ class
, если Language установлен в C++
C++ class
Сгенерируйте интерфейс класса C++ к типовому кодексу. Сгенерированный интерфейс инкапсулирует требуемые данные модели в атрибуты класса C++ и образцовые функции точки входа в методы класса C++.
Nonreusable function
Сгенерируйте код одноразового использования. Структуры данных модели статически выделены и получены доступ образцовыми функциями точки входа непосредственно в типовом кодексе.
Reusable function
Сгенерируйте допускающий повторное использование, код мультиэкземпляра, который повторно используем, можно следующим образом:
Для основанной на GRT модели сгенерированный исходный файл
содержит функцию выделения, которая динамически выделяет данные модели для каждого экземпляра модели. Для основанной на ERT модели можно использовать опцию Use dynamic memory allocation for model initialization, чтобы управлять, сгенерирована ли функция выделения.model.c
Сгенерированный код передает структуру данных модели реального времени в, ссылкой, в качестве аргумента к
и другим образцовым функциям точки входа.model_step
Структура данных модели реального времени экспортируется с заголовочным файлом
.model.h
Для основанной на ERT модели можно использовать параметр Pass root-level I/O as, чтобы управлять, как аргументы ввода и вывода корневого уровня передаются допускающим повторное использование образцовым функциям точки входа. Они могут быть включены в структуру данных модели реального времени, которая передается функциям, передала в качестве отдельных аргументов или передала как ссылки на входную структуру и выходную структуру.
Точки входа экспортируются с
. Чтобы вызвать функции точки входа из рукописного кода, добавьте директиву model.h
#include model.h
в код.
Когда вы выбираете Reusable function
, генератор кода генерирует указатель на объект модели реального времени (
).model_M
Когда вы выбираете Reusable function
, генератор кода может сгенерировать код, который компилирует, но не повторно используем. Например, если сигнал, структура DWork или данные о параметре имеют класс памяти кроме Auto
, структуры глобальных данных сгенерированы.
C++ class
значения доступен, только если параметр Language устанавливается на C++
на панели Code Generation.
Выбор Reusable function
или C++ class
включает Multi-instance code error diagnostic.
Для цели ERT, выбор Reusable function
включает Pass root-level I/O as и Use dynamic memory allocation for model initialization.
Чтобы включить Classic call interface, необходимо выбрать Nonreusable function
.
Для цели ERT, выбор C++ class
включает следующие средства управления для настройки образцового интерфейса класса:
Кнопка Configure C++ Class Interface
Подпанель Data Member Visibility/Access Control
Образцовые опции Generate destructor и Use dynamic memory allocation for model block instantiation
Для цели ERT можно использовать Reusable function
со статическим модулем ert_main.c
, если вы делаете следующее:
Выберите значение Part of model data structure
для Pass root-level I/O as.
Выберите опцию Use dynamic memory allocation for model initialization.
Для цели ERT вы не можете использовать Reusable function
, если вы используете:
Прототип функции model_step
управляет возможностью
Параметр подсистемы Function with separate data
Подсистема это
Имеет несколько портов тот источник доли
Имеет порт, который используется несколькими экземплярами подсистемы и имеет различные шаги расчета, типы данных, сложность, состояние кадра или размерности через экземпляры
Вывел отмеченный как глобальный сигнал
Поскольку каждый экземпляр содержит идентичные блоки с различными именами или установками параметров
Используя Reusable function
не изменяет код, сгенерированный для подсистем вызова функций.
Параметр: CodeInterfacePackaging |
Ввод: символьный вектор |
Значение: 'C++ class' | 'Nonreusable function' | 'Reusable function' |
Значение по умолчанию: 'Nonreusable function' , если TargetLang установлен в 'C' ; 'C++ class' , если TargetLang установлен в 'C++' |
Приложение | Установка |
---|---|
Отладка | Никакое влияние |
Трассируемость | Никакое влияние |
Эффективность | Reusable function или C++ class |
Меры безопасности | Никакое влияние |