Настройте интерфейс Кода С++, который вы генерируете из модели и хотите вызвать от C или Кода С++. Чтобы вызвать Код С++ от кода С, вы инкапсулируете интерфейс класса C++ в сгенерированном коде.
Если начиная с новой модели,
Создайте модель по крайней мере с одним импортом и по крайней мере одним выходным портом.
Выберите Configuration Parameters> Code Generation и установите Язык программирования на C++
.
Выберите Configuration Parameters> Interface, нажмите на упаковку интерфейса Code и выберите C++ class
.
Нажмите на Configure C ++ Class Interface и настройте интерфейс по мере необходимости. Смотрите Настраивают Сгенерированные Интерфейсы Класса C++.
Сгенерированный класс C++ инкапсулирует данные модели и методы. Используя Embedded Coder®, интерфейс инкапсуляции конфигурируем через образцово-нейтральные параметры конфигурации и образцово-специфичные настройки. Интерфейс поддерживает два стиля образцовых интерфейсов метода шага (метод шага по умолчанию, и аргументы I/O продвигаются метод). Интерфейс стиля аргументов I/O может использоваться, чтобы настроить прототип метода шага, и интерфейс стиля метода шага По умолчанию может использоваться, чтобы достигнуть максимизируемого поддерживаемого набора функций включая виртуальную шину через образцовые контуры и многозадачный интерфейс.
open_system('rtwdemo_cppclass');
Откройте модель rtwdemo_cppclass
в качестве примера.
Сохраните копию модели к вашей текущей рабочей папке.
Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.
Используйте отчет генерации кода осмотреть источник в сгенерированных файлах с помощью гиперссылок, встроенных в отчет.
Наблюдайте индивидуально настраиваемый образцовый шаг и классы инициализации ModelClass::step_method
и ModelClass::initialize
в файле rtwdemo_cppclass.cpp
.
Чтобы просмотреть интерфейсную настройку, в модели, дважды кликают, желтая кнопка (маркировал View Interface Configuration). Или, выберите Configuration Parameters> Code Generation> Interface и нажмите Configure C ++ Class Interface.
Наблюдайте индивидуально настраиваемые аргументы для ступенчатой функции и как они относятся к сгенерированному коду.
Если начиная с новой модели, необходимо заполнить начальную настройку для интерфейса класса C++.
Чтобы заполнить начальную настройку аргумента для модели инициализируют и ступенчатые функции, нажимают Get Default Configuration.
Чтобы закрыть диалоговое окно Model Interface, нажмите Apply затем OK.
Чтобы закрыть Параметры конфигурации, нажать ОК.
Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.
Используйте отчет генерации кода осмотреть индивидуально настраиваемый образцовый шаг и классы инициализации ModelClass::step_method
и ModelClass::initialize
в файле rtwdemo_cppclass.cpp
.
Наблюдайте параметры по умолчанию для ступенчатой функции и как они относятся к сгенерированному коду.
Чтобы просмотреть интерфейсную настройку, в модели, дважды кликают, желтая кнопка (маркировал View Interface Configuration). Или, выберите Configuration Parameters> Code Generation> Interface и нажмите Configure C ++ Class Interface.
Имя Перемещаемого порта Out1
к верхней части Порядка и набора его Категория к Значению.
Чтобы закрыть диалоговое окно Model Interface, нажмите Apply затем OK.
Чтобы закрыть Параметры конфигурации, нажать ОК.
Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.
Используйте отчет генерации кода осмотреть индивидуально настраиваемый образцовый шаг и классы инициализации ModelClass::step_method
и ModelClass::initialize
в файле rtwdemo_cppclass.cpp
.
Заметьте, что пользовательские аргументы появляются в сгенерированном коде.
Модель rtwdemo_cppclass
обеспечивает кнопки, чтобы переключить функциональную спецификацию для интерфейса класса C++ между методом шага по умолчанию (в многозадачном режиме), и аргументы I/O продвигаются метод.
Чтобы сконфигурировать функциональную спецификацию для метода шага по умолчанию, в модели rtwdemo_cppclass
, дважды кликают, желтая кнопка (маркировал Use Default Interface in MultiTasking Mode).
Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.
Используйте отчет генерации кода осмотреть образцовый шаг и классы инициализации, затем закройте отчет.
Чтобы сконфигурировать функциональную спецификацию для аргументов I/O продвигаются метод, в модели rtwdemo_cppclass
, дважды кликают, желтая кнопка (маркировал Use I/O Arguments Interface).
Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.
Используйте отчет генерации кода осмотреть образцовый шаг и классы инициализации, затем закройте отчет.
Модель rtwdemo_cppclass_refmid
является одной из моделей, на которые ссылаются, в модели rtwdemo_cppclass
в качестве примера.
Эта модель, на которую ссылаются, показывает способность сгенерировать настраиваемый интерфейс класса C++ к коду, сгенерированному Embedded Coder для модели, на которую ссылаются, посреди иерархии модели - ссылки.
Откройте rtwdemo_cppclass_refmid
модель, на которую ссылаются, путем двойного клика на блоке Subsystem_with_MdlRef_blks
затем путем двойного клика на блоке middle_instance_1
.
Чтобы просмотреть интерфейсную настройку, в модели rtwdemo_cppclass_refmid
, дважды кликают, желтая кнопка (маркировал View Interface Configuration). Или, выберите Configuration Parameters> Code Generation> Interface и нажмите Configure C ++ Class Interface.
Заметьте, что настройка для интерфейса класса для модели, на которую ссылаются, отличается от интерфейса класса для модели верхнего уровня (например, пространство имен отличается).
open_system('rtwdemo_cppclass_refmid');
Модель rtwdemo_cppclass_refc
является одной из моделей, на которые ссылаются, в модели rtwdemo_cppclass
в качестве примера.
Эта модель, на которую ссылаются, показывает, что смешанные стили интерфейса могут использоваться в иерархии модели - ссылки. Эта модель использует стиль интерфейса кода С (скомпилированный с компилятором C++), в то время как другие модели в той же иерархии используют интерфейсы класса C++.
Откройте rtwdemo_cppclass_refc
модель, на которую ссылаются, путем двойного клика на блоке Subsystem_with_MdlRef_blks
, затем дважды кликающем на блоке ref_c_instance
.
Выберите Configuration Parameters> Code Generation> Interface. Заметьте, что упаковка интерфейса Code установлена в функцию Одноразового использования (для прототипа функции C).
Чтобы просмотреть предварительный просмотр Ступенчатой функции для прототипа функции, нажмите на Configure Model Functions, затем нажмите Validate.
open_system('rtwdemo_cppclass_refc');
Для получения дополнительной информации и ограничения, смотрите, Настраивают Сгенерированные Интерфейсы Класса C++ в документации Embedded Coder.