主要内容

将DDS应用程序部署

DDS Blockset连接在Simulink中建模的应用程序金宝app®为DDS供应商RTI和eProsima提供开箱即用的支持。金宝app要使用开箱即用的DDS,在Simulink中创建一个DDS应用程序并建模,设置环境,并使用Embedded Coder金宝app®以构建应用程序模型。构建将创建导出的XML、生成的c++代码和可用于直接连接到DDS网络的应用程序可执行文件。

构建和部署DDS应用程序

要在DDS网络上部署应用程序:

  1. 确保您的模型配置正确。验证模型端口是否为DDS配置并正确映射。有关更多信息,请参见交互式配置DDS接口

  2. 设置环境。DDS Blockset生成特定于您选择的DDS供应商(RTI或eProsima)的可执行文件。要验证或更改供应商选择,可以使用Configuration Parameters对话框查看应用程序的工具链设置。要构建应用程序的可执行文件,请在受支持的平台上使用受支持的c++编译器设置环境。金宝app如果您的目标供应商是eProsima,则不需要额外的设置。如果您的目标供应商是RTI,您还必须安装RTI Connext。有关更多信息,请参见DDS模块集系统要求

  3. 构建应用程序模型。在DDS选项卡上,单击构建

  4. 运行可执行文件并将应用程序连接到DDS网络。

生成文件概述

在构建DDS应用程序模型时,会在当前工作目录中生成以下文件夹和文件:

  • 应用程序可执行文件—可部署用于将应用程序连接到DDS网络的可执行文件。

  • 嵌入式编码器构建文件夹-生成的c++代码文件。

  • 金宝appSimulink项目文件夹(slprj) -模型仿真文件。

  • 金宝appSimulink数据字典文件-相关的DDS字典(.sldd)文件。

  • DDS应用模型-应用程序的Simulink模型。金宝app

  • 导出的XML/IDL文件-您的DDS应用程序的XML/IDL规范。

您可以使用这些生成的文件来分析、部署和移植DDS应用程序。此外,还可以使用packNGo功能重新定位和重建应用程序。

DDS应用的可移植性

要在另一个开发环境中重新部署、解包和重建DDS应用程序,可以使用packNGo。packNGo函数允许您重新定位文件,以便您可以针对特定的目标环境进行重新编译,或者在开发环境中重新构建®没有安装。默认情况下,该函数将文件打包为代码生成文件夹中的ZIP文件中的扁平文件夹结构。重新定位ZIP文件后,使用标准ZIP实用程序解压缩压缩文件。

配置你的模型以使用packNGo构建:

  1. 打开“配置参数”对话框。

  2. 选择打包代码和工件

  3. 在工具条上,单击构建

有关更多信息,请参见packNGo(嵌入式编码)

实现细节和生成的c++代码

DDS的实现由对象管理组(OMG)标准指定,并由几个供应商用几种不同的编程语言实现。的DDS Blockset提供与DDS供应商RTI和eProsima的开箱即用集成。具体来说,区块集提供了对RTI和eProsima提供的DDS标准的c++金宝app实现的支持。如果您对这些供应商api感兴趣,请参阅您的供应商文档。

生成的c++代码的基本架构是,应用程序由消息类、供应商助手类和主文件组成。消息类使应用程序能够发送和接收数据。供应商助手类特定于供应商,并加载应用程序概要文件、注册数据类型、创建和初始化DDS实体,以及包装特定于供应商API的发送和接收消息类。然后,主文件执行应用程序逻辑。如果您想检查生成的c++代码,请查看Embedded Coder构建文件夹。

如果您想定制生成的代码,可以控制为DDS应用程序生成的c++类名和名称空间。从一个开放的模型配置生成代码的这些方面DDS选项卡上,单击代码接口中,选择类名和命名空间,并在打开的配置对话框中自定义名称。有关更多信息,请参见配置类名和命名空间(嵌入式编码)

调试和故障诊断

以下是一些常见的构建问题:

不正确的环境设置

  • 如果您选择RTI作为您的供应商,但没有安装RTI Connext,那么您将无法部署您的应用程序。

  • 行动-下载和安装RTI Connext

应用程序模型中导入和输出端口的映射缺失或无效

  • 说明—如果没有正确配置导入或输出端口,则模型不会生成。

  • 操作—将应用程序模型中的导入和输出端口映射到DDS主题,并使用相应的DDS数据类型配置端口。

DDS定义数据管理不一致

  • 描述—如果将导入或输出映射到Topic,然后删除或更改Topic的数据类型,则模型不会生成。

  • 操作—验证DDS定义在关联的DDS字典中可用。

注意事项和限制

  • DDS目标规范DDS Blockset不支持为非DDS应金宝app用程序编译从DDS应用程序模型生成的代码

  • DDS定义——应用程序的DDS主题和QoS是从与应用程序模型关联的DDS字典中检索的。确保这个字典在您的MATLAB路径上,以适当地构建您的模型。

  • 代码生成数据类型——生成的c++代码不支持某些数据类型。金宝app代码生成不支持多维数组。金宝app

  • 安全——通信平台存在固有的安全风险。这些风险包括恶意用户试图监听或欺骗DDS通信的可能性。此外,晚连接的读取器可能会访问以前传输的数据。为了增加对这些安全风险的保护,请下载并使用供应商的安全版本。eProsima的版本包括DDS Blockset不是安全版本。

相关的话题

外部网站