Сгенерируйте код С++ от топ-моделей для основанной на сообщении коммуникации при помощи внешних протоколов сообщения

Чтобы сгенерировать Код С++, который поддерживает основанную на сообщении связь между топ-моделями Simulink и внешними приложениями, используйте Библиотеку сообщений & Событий Simulink Send и блоки Receive.

Генерация кода от топ-модели, чтобы упростить передачу сообщений за пределами окружения Simulink позволяет вашему смоделированному приложению связываться в распределенной системе, которая использует внешний сервис протокола сообщения (например, DDS, ROS, SOMEIP или сообщения POSIX).

Топ-модели Simulink передают сообщения следующим образом:

  1. Топ-модели содержат блоки сообщения, чтобы связаться вне окружения Simulink. Если топ-модель содержит блок Send, непосредственно соединенный с корневым бок выходного порта, блок преобразует свои сигналы в сообщения и передает их вне окружения Simulink. Если топ-модель содержит блок Receive, непосредственно соединенный с корневым блоком импорта, блок преобразует полученные сообщения в сигналы.

  2. Внешний протокол сообщения справляется с коммуникацией сообщения согласно своему собственному стандарту (политики, которые управляют способностью, порядком доставки и другим поведением качества сервиса (QoS)).

Чтобы изучить, как интегрировать топ-модель с внешним протоколом сообщения, эта тема покрытия, как подготовить топ-модель, сгенерируйте код и интегрируйте тот код с внешним протоколом.

Подготовьте топ-модель

Чтобы сгенерировать Код С++ от топ-модели, которая может объединяться с внешним протоколом сообщения, готовят топ-модель, использующую эти шаги:

  1. Проверьте, что топ-модель содержит один или несколько блоков сообщения (например, блок Send, соединенный с корневым блоком выходного порта или блоком Receive, соединенным с корневым блоком импорта).

  2. В диалоговом окне 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 порты сообщения соединяются как показано.

Сгенерируйте код

Сгенерировать Код С++ от вашей топ-модели:

  1. Откройте свою модель.

  2. В галерее Apps нажмите Embedded Coder.

  3. Сгенерируйте код. На вкладке C++ Code нажмите Build.

  4. Просмотрите сгенерированный код. На вкладке C++ Code нажмите View Code.

Интегрируйте код

Сгенерированный Код С++ предоставляет сервисные классы, чтобы отправить и получить сообщения и демонстрационное основное, которое вы, как ожидают, будете программировать с логикой, чтобы интегрировать сгенерированный Код С++ с вашим целевым внешним сервисом протокола сообщения.

Генерация кода С++ обеспечивает эти файлы:

  • Сгенерированный сервисный класс, чтобы отправить сообщения, SendData_doubleT.h.

  • Сгенерированный сервисный класс, чтобы получить сообщения, RecvData_doubleT.h.

  • Основной файл с сервисными методами класса, которые вы, как ожидают, будете программировать с логикой, чтобы объединяться с вашим внешним сервисом протокола сообщения.

    Основной файл задает и затем инстанцирует отправления, и получите сервисные классы. Конструктор топ-модели затем создает экземпляр топ-модели путем передачи в ссылке на каждый сервисный класс.

Пример интеграции кода:

Пример того, как реализовать логику для демонстрационного основного файла, чтобы интегрировать сгенерированный код с сообщениями POSIX, следующий:

Факторы и ограничения

  • Поддержка генерации кода интеграции топ-модели с внешними протоколами сообщения доступна на C++.

  • Параметр Generate a sample main должен быть выбран, приложения, которые требуют статического основного, не поддержан.

  • Управление прототипом функции (FPC) не может быть сконфигурировано для топ-модели, которая имеет корневые порты сообщения.

Похожие темы