Настройте интерфейс к сгенерированному коду С++, который вызван кодом С

Настройте интерфейс Кода С++, который вы генерируете из модели и хотите вызвать от C или Кода С++. Чтобы вызвать Код С++ от кода С, вы инкапсулируете интерфейс класса C++ в сгенерированном коде.

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

Если начиная с новой модели,

  1. Создайте модель по крайней мере с одним импортом и по крайней мере одним выходным портом.

  2. Выберите Configuration Parameters> Code Generation и установите Язык программирования на C++.

  3. Выберите Configuration Parameters> Interface, нажмите на упаковку интерфейса Code и выберите C++ class.

  4. Нажмите на Configure C ++ Class Interface и настройте интерфейс по мере необходимости. Смотрите Настраивают Сгенерированные Интерфейсы Класса C++.

Об интерфейсах инкапсуляции C++

Сгенерированный класс C++ инкапсулирует данные модели и методы. Используя Embedded Coder®, интерфейс инкапсуляции конфигурируем через образцово-нейтральные параметры конфигурации и образцово-специфичные настройки. Интерфейс поддерживает два стиля образцовых интерфейсов метода шага (метод шага по умолчанию, и аргументы I/O продвигаются метод). Интерфейс стиля аргументов I/O может использоваться, чтобы настроить прототип метода шага, и интерфейс стиля метода шага По умолчанию может использоваться, чтобы достигнуть максимизируемого поддерживаемого набора функций включая виртуальную шину через образцовые контуры и многозадачный интерфейс.

open_system('rtwdemo_cppclass');

Сгенерируйте код из модели в качестве примера

  1. Откройте модель rtwdemo_cppclass в качестве примера.

  2. Сохраните копию модели к вашей текущей рабочей папке.

  3. Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.

  4. Используйте отчет генерации кода осмотреть источник в сгенерированных файлах с помощью гиперссылок, встроенных в отчет.

  5. Наблюдайте индивидуально настраиваемый образцовый шаг и классы инициализации ModelClass::step_method и ModelClass::initialize в файле rtwdemo_cppclass.cpp.

  6. Чтобы просмотреть интерфейсную настройку, в модели, дважды кликают, желтая кнопка (маркировал View Interface Configuration). Или, выберите Configuration Parameters> Code Generation> Interface и нажмите Configure C ++ Class Interface.

  7. Наблюдайте индивидуально настраиваемые аргументы для ступенчатой функции и как они относятся к сгенерированному коду.

Изменитесь на параметры по умолчанию и восстановите модель

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

  1. Чтобы заполнить начальную настройку аргумента для модели инициализируют и ступенчатые функции, нажимают Get Default Configuration.

  2. Чтобы закрыть диалоговое окно Model Interface, нажмите Apply затем OK.

  3. Чтобы закрыть Параметры конфигурации, нажать ОК.

  4. Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.

  5. Используйте отчет генерации кода осмотреть индивидуально настраиваемый образцовый шаг и классы инициализации ModelClass::step_method и ModelClass::initialize в файле rtwdemo_cppclass.cpp.

  6. Наблюдайте параметры по умолчанию для ступенчатой функции и как они относятся к сгенерированному коду.

Примените пользовательские аргументы и восстановите модель

  1. Чтобы просмотреть интерфейсную настройку, в модели, дважды кликают, желтая кнопка (маркировал View Interface Configuration). Или, выберите Configuration Parameters> Code Generation> Interface и нажмите Configure C ++ Class Interface.

  2. Имя Перемещаемого порта Out1 к верхней части Порядка и набора его Категория к Значению.

  3. Чтобы закрыть диалоговое окно Model Interface, нажмите Apply затем OK.

  4. Чтобы закрыть Параметры конфигурации, нажать ОК.

  5. Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.

  6. Используйте отчет генерации кода осмотреть индивидуально настраиваемый образцовый шаг и классы инициализации ModelClass::step_method и ModelClass::initialize в файле rtwdemo_cppclass.cpp.

  7. Заметьте, что пользовательские аргументы появляются в сгенерированном коде.

Сравните Интерфейс По умолчанию (Максимальная Поддержка) с Интерфейсом Аргументов ввода-вывода

Модель rtwdemo_cppclass обеспечивает кнопки, чтобы переключить функциональную спецификацию для интерфейса класса C++ между методом шага по умолчанию (в многозадачном режиме), и аргументы I/O продвигаются метод.

  1. Чтобы сконфигурировать функциональную спецификацию для метода шага по умолчанию, в модели rtwdemo_cppclass, дважды кликают, желтая кнопка (маркировал Use Default Interface in MultiTasking Mode).

  2. Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.

  3. Используйте отчет генерации кода осмотреть образцовый шаг и классы инициализации, затем закройте отчет.

  4. Чтобы сконфигурировать функциональную спецификацию для аргументов I/O продвигаются метод, в модели rtwdemo_cppclass, дважды кликают, желтая кнопка (маркировал Use I/O Arguments Interface).

  5. Чтобы сгенерировать код, в модели, дважды кликают синюю кнопку. Или, создайте модель путем нажатия Ctrl+B. Отчет генерации кода отображен.

  6. Используйте отчет генерации кода осмотреть образцовый шаг и классы инициализации, затем закройте отчет.

Примените интерфейс класса C++ с моделями, на которые ссылаются,

Модель rtwdemo_cppclass_refmid является одной из моделей, на которые ссылаются, в модели rtwdemo_cppclass в качестве примера.

Эта модель, на которую ссылаются, показывает способность сгенерировать настраиваемый интерфейс класса C++ к коду, сгенерированному Embedded Coder для модели, на которую ссылаются, посреди иерархии модели - ссылки.

  1. Откройте rtwdemo_cppclass_refmid модель, на которую ссылаются, путем двойного клика на блоке Subsystem_with_MdlRef_blks затем путем двойного клика на блоке middle_instance_1.

  2. Чтобы просмотреть интерфейсную настройку, в модели rtwdemo_cppclass_refmid, дважды кликают, желтая кнопка (маркировал View Interface Configuration). Или, выберите Configuration Parameters> Code Generation> Interface и нажмите Configure C ++ Class Interface.

  3. Заметьте, что настройка для интерфейса класса для модели, на которую ссылаются, отличается от интерфейса класса для модели верхнего уровня (например, пространство имен отличается).

open_system('rtwdemo_cppclass_refmid');

Примените Смешанные Стили интерфейса C/C++ в Иерархии Модели - ссылки

Модель rtwdemo_cppclass_refc является одной из моделей, на которые ссылаются, в модели rtwdemo_cppclass в качестве примера.

Эта модель, на которую ссылаются, показывает, что смешанные стили интерфейса могут использоваться в иерархии модели - ссылки. Эта модель использует стиль интерфейса кода С (скомпилированный с компилятором C++), в то время как другие модели в той же иерархии используют интерфейсы класса C++.

  1. Откройте rtwdemo_cppclass_refc модель, на которую ссылаются, путем двойного клика на блоке Subsystem_with_MdlRef_blks, затем дважды кликающем на блоке ref_c_instance.

  2. Выберите Configuration Parameters> Code Generation> Interface. Заметьте, что упаковка интерфейса Code установлена в функцию Одноразового использования (для прототипа функции C).

  3. Чтобы просмотреть предварительный просмотр Ступенчатой функции для прототипа функции, нажмите на Configure Model Functions, затем нажмите Validate.

open_system('rtwdemo_cppclass_refc');

Больше о

Для получения дополнительной информации и ограничения, смотрите, Настраивают Сгенерированные Интерфейсы Класса C++ в документации Embedded Coder.