DDS Blockset соединяет приложения, смоделированные в Simulink® к DDS путем обеспечения программной поддержки поставщиков DDS RTI и eProsima. Чтобы использовать поля DDS, создайте и смоделируйте приложение DDS в Simulink, настройте среду и используйте Embedded Coder® создавать прикладную модель. Сборка создает экспортируемый XML, сгенерированный Код С++ и исполняемый файл приложения, который можно использовать, чтобы непосредственно соединиться с сетью DDS.
Развернуть ваше приложение на сети DDS:
Убедитесь, что ваша модель сконфигурирована правильно. Проверьте, что порты модели сконфигурированы и сопоставлены соответственно для DDS. Для получения дополнительной информации смотрите, В интерактивном режиме Конфигурируют Интерфейс DDS.
Настройте среду. DDS Blockset генерирует исполняемый файл, характерный для поставщика DDS, которого вы выбираете, RTI или eProsima. Чтобы проверить или изменить ваш выбор поставщика, можно использовать диалоговое окно Configuration Parameters, чтобы рассмотреть установку набора инструментальных средств для приложения. Чтобы создать исполняемый файл вашего приложения, настройте свою среду в поддерживаемой платформе с поддерживаемым компилятором C++. Если ваш целевой поставщик является eProsima, дополнительная настройка не требуется. Если ваш целевой поставщик является RTI, необходимо также установить RTI Connext. Для получения дополнительной информации смотрите Системные требования DDS Blockset.
Создайте прикладную модель. На вкладке DDS нажмите Build.
Запустите исполняемый файл и соедините ваше приложение с сетью DDS.
Когда вы создаете свою прикладную модель DDS, следующие папки и файлы сгенерированы в вашей текущей рабочей папке:
Исполняемый файл приложения — исполняемый файл, который можно развернуть, чтобы соединить приложение с сетью DDS.
Папка сборки Embedded Coder — сгенерированные файлы Кода С++.
Папка проекта Simulink (slprj) — Файлы симуляции модели.
Файл Словаря Данных Simulink — связанный Словарь DDS (.sldd
) файл.
Прикладная модель DDS — модель Simulink для приложения.
Экспортируемый файл XML/IDL — технические требования XML/IDL вашего приложения DDS.
Можно использовать эти сгенерированные файлы, чтобы анализировать, развернуть, и портировать приложение DDS. Кроме того, можно использовать packNGo функциональность, чтобы переместить и восстановить приложение.
Чтобы переместить, распакуйте и восстановите свое приложение DDS в другой среде разработки, можно использовать packNGo. Функция packNGo позволяет вам переместить файлы, таким образом, можно перекомпилировать для определенного целевого окружения или восстановить в среде разработки где MATLAB® не установлен. По умолчанию, функциональные пакеты файлы как плоская структура папок в zip-файле в папке генерации кода. После того, как вы переместите zip-файл, используйте стандартную утилиту ZIP, чтобы распаковать сжатый файл.
Сконфигурировать вашу модель, чтобы создать с packNGo:
Откройте диалоговое окно Configuration Parameters.
Выберите Pack code and artifacts.
На панели инструментов нажмите Build.
Для получения дополнительной информации смотрите packNGo
(Embedded Coder).
Реализация DDS задана стандартом Группы по управлению объектами (OMG) и реализована несколькими поставщиками на нескольких различных языках программирования. DDS Blockset обеспечивает интеграцию поля "из" с поставщиками DDS RTI и eProsima. А именно, библиотека оказывает поддержку для реализации C++ стандарта DDS, предоставленного RTI и eProsima. Если вы интересуетесь этими API поставщика, обратитесь к своей документации поставщика.
Базовая архитектура сгенерированного Кода С++ - то, что приложение состоит из классов сообщений, классов помощника поставщика и основного файла. Классы сообщений позволяют приложению отправить и получить данные. Классы помощника поставщика характерны для поставщика и загружают профиль приложений, указывают типы данных, создают и инициализируют сущности DDS, и переносят отправление и получают классы сообщений, характерные для API поставщика. Основной файл затем выполняет прикладную логику. Если требуется исследовать сгенерированный Код С++, просмотрите папку сборки Embedded Coder.
Если требуется настроить сгенерированный код, можно управлять сгенерированными именами класса C++ и пространствами имен для приложений DDS. Чтобы сконфигурировать эти аспекты сгенерированного кода, из открытой модели, на вкладке DDS, нажимают Code Interface, выбирают Class Name & Namespace и настраивают имена в открытом диалоговом окне настройки. Для получения дополнительной информации смотрите, Конфигурируют имя класса и пространство имен (Embedded Coder).
Несколько общих проблем сборки, которые можно диагностировать, следующие:
Описание — Если вы выбираете RTI как свой поставщик, но не устанавливаете RTI Connext, затем вы не можете развернуть свое приложение.
Действие — Загрузка и установка RTI Connext.
Описание — Если импорт или выходные порты не были сконфигурированы правильно модель, не создает.
Действие — Карта импорт и выходные порты в прикладной модели к Темам DDS и конфигурирует порты с соответствующими типами данных DDS.
Описание — Если вы сопоставляете импорт или выходной порт к Теме и затем удаляете или изменяете тип данных для Темы модель, не создает.
Действие — Проверяет, что определения DDS доступны в связанном Словаре DDS.
Целевая Спецификация DDS — DDS Blockset не поддерживает компиляцию кода, сгенерированного от прикладной модели DDS для non-DDS приложения
Определения DDS — Темы DDS и QoS для вашего приложения получены из Словаря DDS, сопоставленного с вашей прикладной моделью. Убедитесь, что этот словарь находится на вашем пути MATLAB, чтобы соответственно создать вашу модель.
Типы данных Генерации кода — сгенерированный Код С++ не оказывает поддержку для определенных типов данных. Многомерные массивы не поддерживаются для генерации кода.
Безопасность — существует угрозы безопасности, свойственные от коммуникационных платформ. Эти риски включают потенциал злонамеренных пользователей, чтобы попытаться слушать или имитировать коммуникацию DDS. Кроме того, поздно присоединяющиеся читатели могут потенциально получить доступ к ранее передаваемым данным. Чтобы увеличить защиту от этих угроз безопасности, загрузите и используйте защищенную версию своего поставщика. Версия eProsima, включенного с DDS Blockset, не является защищенной версией.