exponenta event banner

Развертывание приложений DDS

DDS Blockset соединяет приложения, смоделированные в Simulink ®, с DDS, обеспечивая готовую поддержку поставщиков DDS RTI и eProsima. Чтобы использовать стандартную DDS, создайте и смоделируйте приложение DDS в Simulink, настройте среду и используйте Embedded Coder ® для создания модели приложения. Построение создает экспортированный XML, созданный код C++ и исполняемый файл приложения, который можно использовать для прямого подключения к сети DDS.

Создание и развертывание приложений DDS

Чтобы развернуть приложение в сети DDS, выполните следующие действия.

  1. Убедитесь, что модель настроена правильно. Убедитесь, что порты модели сконфигурированы и сопоставлены соответствующим образом для DDS. Дополнительные сведения см. в разделе Интерактивная настройка интерфейса DDS.

  2. Настройка среды. DDS Blockset создает исполняемый файл для выбранного поставщика DDS, RTI или eProsima. Чтобы проверить или изменить выбор поставщика, можно использовать диалоговое окно «Параметры конфигурации» для просмотра настроек цепочки инструментов для приложения. Чтобы создать исполняемый файл приложения, настройте среду с помощью поддерживаемой платформы, компилятора C++ и CMake. Если конечным поставщиком является eProsima, дополнительная настройка не требуется. Если конечным поставщиком является RTI, необходимо также установить RTI Connext. Дополнительные сведения см. в разделе Системные требования к блокам DDS.

  3. Создайте модель приложения. На панели инструментов набора блоков DDS нажмите кнопку «Построить».

  4. Запустите исполняемый файл и подключите приложение к сети DDS.

Обзор созданных файлов

При создании модели приложения DDS в текущей рабочей папке создаются следующие папки и файлы:

  • Исполняемый файл приложения - исполняемый файл, который можно развернуть для подключения приложения к сети DDS.

  • Папка построения встроенного кодера - созданные файлы кода C++.

  • Папка проекта Simulink (slprj) - файлы моделирования модели.

  • Файл словаря данных Simulink - связанный словарь DDS (.sldd) файл.

  • Модель приложения DDS - модель Simulink для приложения.

  • Экспортированный файл XML/IDL - спецификации XML/IDL приложения DDS.

Эти созданные файлы можно использовать для анализа, развертывания и портирования приложения DDS. Кроме того, для перемещения и перестроения приложения можно использовать функцию Pack-N-Go.

Переносимость приложений DDS

Для перемещения, распаковки и восстановления приложения DDS в другой среде разработки можно использовать пакет Pack-N-Go. Функция Pack-N-Go позволяет перемещать файлы, чтобы можно было перекомпилировать для определенной целевой среды или перестроить в среде разработки, где MATLAB ® не установлен. По умолчанию функция упаковывает файлы в виде плоской структуры папок в ZIP-файле в папке создания кода. После перемещения ZIP-файла используйте стандартную утилиту ZIP для распаковки сжатого файла.

Чтобы настроить модель для сборки с помощью Pack-N-Go, выполните следующие действия.

  1. Откройте диалоговое окно «Параметры конфигурации».

  2. Выберите Упаковывать код и артефакты.

  3. На панели инструментов нажмите кнопку «Построить».

Дополнительные сведения см. в разделе packNGo (Встроенный кодер).

Сведения о реализации и созданный код C++

Внедрение DDS определяется стандартом Object Management Group (OMG) и реализуется несколькими поставщиками на нескольких языках программирования. Блоксеть DDS обеспечивает стандартную интеграцию с поставщиками DDS RTI и eProsima. В частности, блоксеть обеспечивает поддержку C-реализации стандарта DDS, предоставляемого RTI, и C + +-реализации стандарта, предоставляемого eProsima.

Основная архитектура генерируемого кода C++ состоит в том, что приложение состоит из классов сообщений, классов помощника поставщика и основного файла. Классы сообщений позволяют приложению отправлять и получать данные. Классы помощника поставщика зависят от поставщика и загружают профиль приложения, регистрируют типы данных, создают и инициализируют объекты DDS и переносят классы сообщений отправки и получения, специфичные для поставщика. Затем основной файл выполняет логику приложения. Если требуется проверить созданный код C++, просмотрите папку сборки Embedded Coder. Если вас интересуют API поставщика, обратитесь к документации поставщика.

Отладка и устранение неполадок

Ниже перечислены некоторые распространенные проблемы сборки, которые можно устранить.

Неправильная настройка среды

  • Описание - Если CMake не установлен, приложение DDS не создает исполняемый файл приложения.

  • Действие - Загрузите и установите CMake 3.15.5 +. Для RTI также загрузите и установите RTI Connext.

Отсутствует или недопустимо сопоставление для входов и выходов в модели приложения

  • Описание (Description) - Если входные или выходные порты настроены неправильно, модель не строится.

  • Действие - сопоставить входы и выходы в модели приложения с темами DDS и настроить порты с соответствующими типами данных DDS.

Несогласованное управление данными определений DDS

  • Описание (Description) - если сопоставить входной или выходной порт с темой, а затем удалить или изменить тип данных для темы, модель не будет построена.

  • Действие - убедитесь, что определения DDS доступны в соответствующем словаре DDS.

Соображения и ограничения

  • Целевая спецификация DDS - набор блоков DDS не поддерживает компиляцию кода, созданного из модели приложения DDS, для приложения, не являющегося приложением DDS

  • Определения DDS - разделы DDS и QoS для приложения извлекаются из словаря DDS, связанного с моделью приложения. Убедитесь, что этот словарь находится в пути MATLAB, чтобы правильно построить модель.

  • Типы данных генерации кода - сгенерированный код C++ не обеспечивает поддержку определенных типов данных. Многомерные массивы не поддерживаются для создания кода. Тип данных массива не поддерживается для создания кода eProsima. Строковый тип данных не поддерживается для создания кода RTI.

  • Безопасность - существуют риски безопасности, присущие коммуникационным платформам. Эти риски включают в себя возможность злонамеренных пользователей пытаться прослушать или испортить DDS-связь. Кроме того, считывающие устройства с поздним присоединением могут потенциально осуществлять доступ к ранее переданным данным. Чтобы повысить защиту от этих угроз безопасности, загрузите и используйте безопасную версию вашего поставщика. Версия eProsima, включенная в DDS Blockset, не является безопасной версией.

Связанные темы

Внешние веб-сайты