问题标签 [opendds]

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 投票
0 回答
201 浏览

multithreading - Open DDS:订阅者如何退订当前发布者

我正在编写一个小型分布式程序。该程序由两个发布者和两个订阅者组成。每个订阅者都是多线程的,有两个控制线程。每个线程订阅两个订阅者之一。这意味着每个订阅者都将订阅两个发布者,每个线程中都有一个。

当其中一个订阅者中的线程收到来自当前订阅发布者的特定消息时,它应该停止订阅当前发布者,并开始订阅另一个发布者。

订阅者如何取消订阅当前发布者?我更改了订阅者关联但失败的主题。构建和销毁发布者和订阅者之间连接的机制是什么?主题匹配?QoS 策略匹配?哪个级别的匹配是问题的关键?

你能推荐一些有用的教程来学习Open DDS的机制吗?我从官方网站(http://opendds.org/)阅读了开发人员指南,但仍然无法弄清楚机制。

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 投票
1 回答
259 浏览

centos - 如何在 linux 中开始在 Qt5.8 上开发 OpenDDS?

经过漫长的过程,我们选择了 CentOS 7.3 + Qt5.8 + OpenDDS 3.10 来满足我们的需求。

现在我正在研究如何使 OpenDDS 在 Qt5 中可用?

搜索“opendds qt”时,这里根本没有结果。

任何想法将不胜感激。

0 投票
0 回答
660 浏览

linux - libOpenDDS_Tcp.so:文件无法识别:文件格式无法识别

当我试图在 Ubuntu 16.04 上交叉编译 Opendds 的代码时arm-none-linux-gnueabi-g++,发生了以下问题:

我怎样才能解决这个问题?

0 投票
1 回答
1347 浏览

android - 如何解决 ACE 和 Android 之间的冲突声明 (CPU_SET_T)?

交叉编译目标:Android 7
主机操作系统:Linux
NDK:Crystax 10.3.2 (b912)
OpenDDS:3.11

编译 OpenDDS 失败并报告 C++ 宏的声明冲突。ACE config-android.h 文件定义了这个...

...我已经注释掉了,但无济于事。

有人对如何克服这个有想法吗?这是我在构建一些 x86_64 之后以及 arm 构建开始的位置之后截取的错误消息。

0 投票
1 回答
446 浏览

android - ACE+TAO/OpenDDS 是否支持 64 位 GCC 工具链?

ACE+TAO:6.3.2
OpenDDS:3.11
主机编译器:GCC 5.4

当我为 Android 交叉编译 OpenDDS 时,我正在查看 ACE_wrappers/build/arm/include/makeinclude/platform_android.GNU,它似乎为 ACE 进行了交叉编译,它似乎只为 ARM-v7a 构建。

我这么说的原因是,在我的应用程序中编译自动生成的文件((来自在 *.idl 上使用 opendds_idl)以及一堆“包含在文件中”之后,我得到了以下错误行,以...结束

当我编译的代码对 CPU 架构有一些错误的标志时,我曾经见过这样的事情。所以我的想法是,我在我的应用程序上使用的 GCC 上可能有一些不兼容的工具链设置以及 ACE+TAO/OpenDDS 使用的那些设置?platform_android.GNU 中的 CROSS_COMPILE 变量是 arm-linux-androideabi- ...据我所知,它是一个 32 位工具链,即 arm-v7a,我看不到 v8a 引用。然而在我的应用程序中,我使用的是 aarch64-linux-android-5。这些应该兼容吗?工具链可以改吗?

我想做的是为目标架构和 ABI 构建 ACE+TAO/OpenDDS/my-application ... arm64: arm64-v8a 并使用 NDK 工具链和目标 ABI ... aarch64-linux-android-5 :arm64-v8a。

想法?

0 投票
2 回答
1325 浏览

networking - OpenDDS:如何通过公共网络(WAN)通信两台主机

最近,我成功地通过 OpenDDS 与同一子网中的两台主机通信。但是,我想通过公共网络或 WAN 与其他两台主机通信。它不起作用。我怎么解决这个问题??

这是我的通信环境:

我有两个主机。HostA 是 AWS(Amazon Web Service),Host B 是我的 Destktop。此外,两台主机具有公共 IP 地址并禁用防火墙。我已经通过 telnet 命令检查了特定端口号是否可用。像这样:

这是很好的连接。

我使用了 OpenDDS-3.11 和$OpenDDS_HOME/tests/DCPS/Messenger的示例。

在 HostA 中,启用

订阅者的操作如下:

在主机 B 中,

目录是相同的订阅者,然后发布者的操作如下:

发布者在此处返回错误消息:

我做错了什么??

0 投票
1 回答
625 浏览

c++ - 如何稳定地将 char* 转换为 TAO::String_Manager_T

我使用了 OpenDDS 的 (DDS_HOME/tests/DCPS/Messenger) 发布者和订阅者示例。

在那个源代码中,我只是更改了非常简单的代码。我想把消息放进去message.text。但是,它不起作用。实际上,当我第一次输入单词时,效果很好。但是,当我下一个输入单词时它不起作用。我认为这与内存分配问题有关。

那么,我怎样才能转换char*TAO::String_Manager_T<char>类型呢?

这是我的部分源代码和错误消息:

作家.cpp:

发布方错误:

订阅方错误:

0 投票
1 回答
306 浏览

tcp - OpenDDS 错误 transport_type=tcp 未注册 :(

在 openDDS 中出现以下错误的可能原因是什么?应用程序编译没有任何错误。ini 文件用于配置。运行应用程序时出现以下错误。

TransportRegistry::create_inst :transport_type=tcp 未注册 TransportRegistry::load_transport_configuration: 无法在 [transport/tcp1] 部分创建传输实例 错误: Service_Participant::load_configuration 无法找到指定的全局传输配置: config1 错误: Service_Participant::get_domain_participant_factory:加载配置()失败

请帮忙 :(

0 投票
1 回答
1073 浏览

c++ - 如何在 GNUMakefile 中包含 libxml2 库

我最近尝试在我的 OpenDDS c++ 项目中包含 libxml2。

但是,我不知道如何在 GNUMakefile 中包含这个库。

如何在这个 GNUmake 文件中包含 libxml2?

另外,我试图像这样在 GNUMakefile 上添加命令。

但是,还是不行。

我的 GNUMakefile 在这里: