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++ и CMake. Если конечным поставщиком является eProsima, дополнительная настройка не требуется. Если конечным поставщиком является RTI, необходимо установить RTI Connext. Для получения дополнительной информации смотрите Системные требования к DDS Blockset.
Создайте модель приложения. На панели инструментов DDS Blockset нажмите Build.
Запустите исполняемый файл и подключите приложение к сети DDS.
Когда вы создаете модель приложения DDS, в текущей рабочей папке генерируются следующие папки и файлы:
Исполняемый файл приложения - исполняемый файл, который можно развернуть для подключения приложения к сети DDS.
Embedded Coder build folder - сгенерированные файлы кода С++.
Simulink project folder (slprj) - Файлы симуляции модели.
Simulink Data Dictionary file - Связанный словарь DDS (.sldd
) файл.
Модель DDS Application - модель Simulink для приложения.
Экспортированный файл XML/IDL - спецификации XML/IDL вашего приложения DDS.
Можно использовать эти сгенерированные файлы для анализа, развертывания и порта приложения DDS. Кроме того, для перемещения и перестройки приложения можно использовать функцию Pack-N-Go.
Чтобы переместить, распаковать и перестроить приложение DDS в другой среде разработки, можно использовать Pack-N-Go. Функция Pack-N-Go позволяет вам перемещать файлы, чтобы можно было перекомпилироваться для определенного целевого окружения или перестроиться в среде разработки, где MATLAB® не установлен. По умолчанию функция упаковывает файлы как структуру плоской папки в ZIP-файл в папке генерации кода. После перемещения ZIP-файла используйте стандартную утилиту для распаковки сжатого файла.
Чтобы сконфигурировать свою модель для сборки с Pack-N-Go:
Откройте диалоговое окно Параметры конфигурации.
Выберите Pack code and artifacts.
На панели инструментов нажмите кнопку Build.
Для получения дополнительной информации смотрите packNGo
(Embedded Coder).
Реализация DDS определяется стандартом Object Management Group (OMG) и реализуется несколькими поставщиками на нескольких разных языках программирования. DDS Blockset обеспечивает стандартное интегрирование с поставщиками DDS RTI и eProsima. В частности, библиотека обеспечивает поддержку реализации стандарта DDS на C, предоставляемого RTI, и реализации стандарта eProsima на C++.
Основная архитектура сгенерированного кода С++ состоит в том, что приложение состоит из классов сообщений, классов помощника поставщика и основного файла. Классы сообщений позволяют приложению отправлять и получать данные. Классы помощника поставщика являются специфичными для поставщика и загружают профиль приложения, регистрируют типы данных, создают и инициализируют сущности DDS и переносят классы сообщений отправки и получения, характерные для поставщика. Затем основной файл выполняет прикладную логику. Если вы хотите изучить сгенерированный код С++, проверьте папку сборки Embedded Coder. Если вы заинтересованы в API поставщика, обратитесь к документации поставщика.
Несколько распространенных проблем сборки, которые вы можете устранить, являются следующими:
Описание - Если у вас нет установленного CMake, приложение DDS не создает исполняемый файл приложения.
Действие - Скачать и установить CMake 3.15.5 +. Для RTI также загрузите и установите RTI Connext.
Описание - Если входные или выходные порты настроены неправильно, модель не строится.
Действие - Сопоставьте входные и выходные порты в модели приложения с темами DDS и сконфигурируйте порты с соответствующими типами данных DDS.
Описание - Если вы сопоставляете входной или выходной порт с темой, а затем удаляете или изменяете тип данных для темы, модель не создает.
Действие - Проверьте, что определения DDS доступны в связанном словаре DDS.
Целевая спецификация DDS - DDS Blockset не поддерживает компиляцию кода, сгенерированного из модели приложения DDS для приложения, отличного от DDS
Определения DDS - Темы DDS и QoS для вашего приложения извлекаются из DDS-словаря, связанного с вашей моделью приложения. Убедитесь, что этот словарь находится на пути MATLAB, чтобы соответствующим образом создать вашу модель.
Типы данных генерации кода - сгенерированный код С++ не обеспечивает поддержку определенных типов данных. Многомерные массивы не поддерживаются для генерации кода. Тип данных массива не поддерживается для генерации кода eProsima. Тип строковых данных не поддерживается для генерации кода RTI.
Безопасность - существуют угрозы безопасности, присущие коммуникационным платформам. Эти риски включают потенциал вредоносных пользователей пытаться прослушивать или подменять коммуникацию DDS. Кроме того, считыватели с поздним соединением могут потенциально получить доступ к ранее переданным данным. Чтобы повысить степень защиты от этих угроз безопасности, загрузите и используйте защищенную версию вашего поставщика. Версия eProsima, включенная в DDS Blockset, не является защищенной версией.