问题标签 [opensplice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
924 浏览

configuration - OpenDDS 和 OpenSplice 互操作性

我有两个程序,一个使用OpenSplice 6.7.1,另一个使用OpenDDS 3.10。

他们都使用RTPS作为协议,相同的域 id目标端口(我使用wireshark 验证)。

问题是他们没有交流。

我不知道我的配置是否有问题...我正在使用带有RTPS的 OpenDDS 的基本配置,而对于 OpenSplice,我在更改域 ID 后使用了提供的 ospl.xml。

这是我的配置文件。 对于 OpenDDS:

对于 OpenSplice:

我究竟做错了什么 ?

0 投票
0 回答
239 浏览

c++ - 配置 Eclipse 以使用 Opensplice DDS

要让 Eclipse 使用 DDS,您必须在项目属性中添加以下配置:

项目→属性→C/C++ 通用→路径和符号→包含→GNU C++

PROJECT→PROPERTIES→C/C++ GENERAL→PATHS AND SYMBOLS→Library Paths ou PROJECT→PROPERTIES→C/C++ Build→Settings→Cross G++ Linker→Libraries→Library search path (-L)→+

PROJECT→PROPERTIES→C/C++ Build→Settings→Cross G++ Linker→Libraries→Libraries (-l)→+

PROJECT→PROPERTIES→C/C++ Build→Environnement→Add ou Edit

目前,我不知道如何在生成的文件夹中自动执行预构建 idl 生成。我只是使用 makefile 和 prebuild 终端命令作为 make idl。如果有人可以帮助预构建 idl 生成,请告诉我!

0 投票
1 回答
1630 浏览

c++ - DDS C++ - 数据分发服务

我开始使用 C#,并且正在尝试测试 dds 应用程序的代码。我取自:http ://www.laas.fr/files/SLides-A_Corsaro.pdf

我开始理解每段代码的用途。但我对主要的前 4 行表示怀疑,那些以“dds::”开头的行我认为它们是错误的——我得到的是“预期的标识符”。如果您能提供帮助,将不胜感激。

0 投票
1 回答
145 浏览

makefile - Opensplice 无法构建 dcpsisocpp2

我从https://github.com/ADLINK-IST/opensplice下载了 Opensplice DDS 的最新源代码,并尝试在我的 Cygwin 64 位中按照它的说明( source setenv, source ./configure, then )构建它。make ..

构建(make命令)似乎已完成,但许多模块(例如dcpsisocpp2, durabilityspliced没有构建(我找不到dcpsisocpp2.dll等)。

我想知道是否有熟悉 Opensplice 的 makefile 系统的人可以指导我解决问题。

0 投票
1 回答
99 浏览

qos - 如何在使用 qos 配置文件时手动管理主题实例的生命周期

我使用 DDS Opensplice 社区版本 6.7。在我创建主题的那一刻,我使用 QoS xml 配置文件。QoS 配置文件设置诸如主题的liveliness设置。resource_limits

我知道如果您不使用 QoS 配置文件,将使用默认 QoS,您可以使用"dds::core::policy::WriterDataLifecycle::ManuallyDisposeUnregisteredInstances()"手动注册/注销/处置主题实例。

我想知道在使用 QoS 配置文件时,如何手动注册/取消注册/处置主题实例?

QoS 配置文件中是否有对应的条目ManuallyDisposeUnregisteredInstances

0 投票
2 回答
3034 浏览

bash - 如何在 Yocto 配方中获取 Bash 脚本

背景: 我正在尝试在 Yocto 配方中构建ADLINK Vortex OpenSplice 社区版。
当我尝试在 Bash shell 中构建 OpenSplice 时,一切正常。但是,当我尝试在 sh shell 中构建 OpenSplice 时会出现很多问题。问题是配置脚本(以及它调用的脚本)有很多 bashisms(数组、popd、pushd 等)。Bash 配置文件太长且复杂,无法使用 Yocto 补丁文件重写为 sh。

问题我无法获取 Bash 脚本来在 Yocto 配方中的 do_configure() 中设置环境变量。
我可以在我的 Yocto 配方中运行配置脚本。例如:
bash -c "printf '5' | source ${S}/configure" 配置脚本询问我要构建 OpenSplice 的平台,printf '5'输入选项5
但是这个脚本没有设置应该设置的环境变量。我知道,Bash 启动了一个子 shell,环境变量不会离开那个 shell。
我试图在我的食谱中找到 Bash: . bash -c "printf '5' | source ${S}/configure"
但这会产生以下错误: sh: 3: /bin/bash: Syntax error: Unterminated quoted string

我还尝试过在 python 中使用系统调用。但这给出了同样的问题,它打开了一个子 shell,并且环境变量在父 shell 中不可用。

问题那么,问题是如何在 Yocto 食谱中获取 Bash 脚本?欢迎任何解决方案,也包括肮脏的解决方案。

食谱

0 投票
1 回答
54 浏览

java - 是什么导致 OpenSplice 中出现此 Java 错误?

我正在使用 OpenSplice 6.4 版来开发一个具有不同网络中的两个站点的应用程序。当我尝试从外部节点收集数据时,出现此错误:

我正在使用 Java 版本 1.8.0_181 和 Ubuntu 服务器 16.04。知道可能导致此错误的原因是什么吗?

0 投票
1 回答
67 浏览

c++ - 为 OpenSplice 模板创建容器?

我正在尝试在 OpenSplice 中构建一个 C++ 程序,该程序允许用户指定应加载的类型。通过使用 OpenSplice 的 IDL 预处理器 (IDLPP) 生成的 C++ 文件不共享一个公共文件,这会稍微复杂一些接口或基类——而不是选择生成所有/大部分代码(我假设减少不必要的依赖)。

我为这个问题创建的解决方案是首先使用 python 脚本生成一个头文件,然后可以由主程序调用。这将允许生成所有包含语句,并将 IDLPP 创建的类型添加为定义。与此有关的问题是稍后引用这些定义。我想通过将定义的对象存储在容器中然后简单地按数字引用它们来解决这个问题。

这里的问题是,由于它们不共享一个公共基类,C++ 没有提供一种简单的方法将它们存储在同一个容器中。作为参考,OpenSplice 对象通常是这样创建的(类似于 STL 中的元组或向量):

dds::topic::Topic<moduleName::classType> variableName(params);

我想将这些不同的对象类型存储在一个容器中。重复和“丑陋”的代码在这里不是什么大问题,因为无论如何我都会生成这些文件。这是我目前尝试的实现:

正如您从评论中看到的那样,根据我尝试修改的部分,这会产生各种不同的错误。似乎最接近的方法是使用TopicHolder(T, U)构造函数,但是当我尝试实际读取元组时失败了

0 投票
0 回答
84 浏览

data-distribution-service - 使用 OpenSplice DDSI2 时如何查询 DDS 发布者的 IP 地址

我正在使用 OpenSplice 发布数据和订阅数据。

在订阅方面,我希望能够查询发布者的 IP 地址。

想要这样做的主要原因是我需要从发布者那里复制非常大的文件,我不需要通过 DDS 共享文件,如果带宽受到限制,我可能需要终止/“速率限制”复制/有限的。

复制是一次性的,所以我可以使用 rsync 和 ssh,但要实现这一点,我需要发布者的 IP 地址。我可以迭代发布者端的网络接口,但是可能不止一个有效的网络接口。

我花了很长时间试图找到一种方法来从 dds::sub::DataReader (或相关类)中查询必要的信息,但我的搜索技能让我失望了,我想知道在我回退到之前是否有可能不那么优雅的东西。

有一个相关的 RTI 问题/答案:Get IP Address of DataWriter/Publisher on RTI DDS?

0 投票
1 回答
221 浏览

python - DDS Openslice:如何在 python 中创建监听器

我正在使用凌华科技的 OpenSplice 和他们的 Python API。我似乎找不到好的文档或类参考。我想设置一种非阻塞方式来接收多条消息。他们的 Listener 似乎提供了这个,但不清楚如何在 python 中设置它。

他们的 DDS 教程给出了一个 C 示例:

这似乎表明 datareceiver 有一个“listener”方法用于为 datareader 分配一个监听器。

这是如何使用 Python API 完成的?我似乎无法从 python datareceiver 中找到监听器方法。

提供的 Python 示例(example1.py 和 example2.py)提供

但我看不到该类的实例化。该示例似乎使用了 Waitset 而根本不使用侦听器

我期待的是:

reader 确实有一个名为 listener 的属性。我将对象分配给该属性,但它似乎没有任何效果。