Чтобы сгенерировать Код С++, который поддерживает основанную на сообщении связь между топ-моделями Simulink и внешними приложениями, используйте Библиотеку сообщений & Событий Simulink Send и блоки Receive.
Генерация кода от топ-модели, чтобы упростить передачу сообщений за пределами окружения Simulink позволяет вашему смоделированному приложению связываться в распределенной системе, которая использует внешний сервис протокола сообщения (например, DDS, ROS, SOMEIP или сообщения POSIX).
Топ-модели Simulink передают сообщения следующим образом:
Топ-модели содержат блоки сообщения, чтобы связаться вне окружения Simulink. Если топ-модель содержит блок Send, непосредственно соединенный с корневым бок выходного порта, блок преобразует свои сигналы в сообщения и передает их вне окружения Simulink. Если топ-модель содержит блок Receive, непосредственно соединенный с корневым блоком импорта, блок преобразует полученные сообщения в сигналы.
Внешний протокол сообщения справляется с коммуникацией сообщения согласно своему собственному стандарту (политики, которые управляют способностью, порядком доставки и другим поведением качества сервиса (QoS)).
Чтобы изучить, как интегрировать топ-модель с внешним протоколом сообщения, эта тема покрытия, как подготовить топ-модель, сгенерируйте код и интегрируйте тот код с внешним протоколом.
Чтобы сгенерировать Код С++ от топ-модели, которая может объединяться с внешним протоколом сообщения, готовят топ-модель, использующую эти шаги:
Проверьте, что топ-модель содержит один или несколько блоков сообщения (например, блок Send, соединенный с корневым блоком выходного порта или блоком Receive, соединенным с корневым блоком импорта).
В диалоговом окне Configuration Parameters, установленном эти параметры:
В панели Code Generation, набор System target file к ert.tlc
.
В панели Code Generation, набор language к C++
.
В панели Interface, набор Coder interface packaging к C++ class
.
Выберите generate an example main
флажок.
Концептуальный пример того, как топ-модель, HMI, объединяется с внешним сервисом протокола сообщения, Промежуточное программное обеспечение (например, POSIX), показывают:
В модели HMI порты сообщения соединяются как показано.
Сгенерировать Код С++ от вашей топ-модели:
Откройте свою модель.
В галерее Apps нажмите Embedded Coder.
Сгенерируйте код. На вкладке C++ Code нажмите Build.
Просмотрите сгенерированный код. На вкладке C++ Code нажмите View Code.
Сгенерированный Код С++ предоставляет сервисные классы, чтобы отправить и получить сообщения и демонстрационное основное, которое вы, как ожидают, будете программировать с логикой, чтобы интегрировать сгенерированный Код С++ с вашим целевым внешним сервисом протокола сообщения.
Генерация кода С++ обеспечивает эти файлы:
Сгенерированный сервисный класс, чтобы отправить сообщения, SendData_doubleT.h
.
Сгенерированный сервисный класс, чтобы получить сообщения, RecvData_doubleT.h
.
Основной файл с сервисными методами класса, которые вы, как ожидают, будете программировать с логикой, чтобы объединяться с вашим внешним сервисом протокола сообщения.
Основной файл задает и затем инстанцирует отправления, и получите сервисные классы. Конструктор топ-модели затем создает экземпляр топ-модели путем передачи в ссылке на каждый сервисный класс.
Пример интеграции кода:
Пример того, как реализовать логику для демонстрационного основного файла, чтобы интегрировать сгенерированный код с сообщениями POSIX, следующий:
Поддержка генерации кода интеграции топ-модели с внешними протоколами сообщения доступна на C++.
Параметр Generate a sample main должен быть выбран, приложения, которые требуют статического основного, не поддержан.
Управление прототипом функции (FPC) не может быть сконфигурировано для топ-модели, которая имеет корневые порты сообщения.