问题标签 [data-distribution-service]
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.
data-distribution-service - 如何在 idl 中为 DDS 建模
我是 DDS 和 IDL 的新手,我希望有人可以就如何在 IDL 中建模以下内容提供一些建议。
这是基于 OO 角度的模型,它只是作为一个简单的示例:
这是我在 IDL 中的初始数据模型 - 是否正确完成?如何在 IDL 中“建模”继承和依赖关系?网上的很多例子都很简单——我发现的那些太简单了......
这只是一个虚构的继承示例,并不是最好的;o)
这是正确的还是有更好的建模方法 - 任何人都可以提供一个好的“HOWTO”链接,用于使用 IDL for DDS?注意:我正在使用 RTI Connext DDS
c++ - DDS DomainParticipantFactory 错误 CORBA
我正在尝试创建一个程序来测试 Opensplice DDS。但是,我面临一些问题,我已经被困了很长时间。
当我尝试创建一个时,DomainParticipantFactory
我收到一个错误,上面写着CORBA:NO_IMPLEMENT
. 如果我不创建该程序,该程序就可以工作,DomainParticipant
所以我认为问题出在那儿。
有人会遇到这样的问题吗?
hadoop - Hadoop vs DDS vs ACE
我正在写一份关于 Java 分布式系统库的报告。但我看不出它们之间的区别。ACE、Hadoop、DDS 有什么区别?三者能不能用来开发像简单聊天这样的分布式应用?谢谢!
data-distribution-service - RTI路由服务设置
我在让 RTI 路由服务与我的应用程序一起工作时遇到问题。
我创建了一个简单的 DDS 发布者应用程序和一个简单的 DDS 订阅者应用程序。应用程序通过 LAN 在 2 台不同的计算机上运行时进行通信,但我无法使用 RTI 路由服务让它们在 WAN 上工作。
我按照“RTI Routing Service - Getting Started Guide”中的“Example 8 - Using the TCP Transport with Routing Service”。我可以让 RTI Shapes Demo 在 RTI Routing Service 上运行。注意。我的应用程序使用与 RTI Shapes Demo 相同的域 ID
我的发布者在 PC1 上,订阅者在 PC2 上。我可以看到(使用 rtiddsspy)PC2 从 RTI 路由服务接收数据,但订阅者应用程序没有在 PC2 上收到通知。
在创建用于 RTI 路由服务的 DDS 应用程序时,有什么我必须特别注意的吗?
问候约翰
data-distribution-service - RTI DDS Src HostId 到 IP 地址
我正在使用RTI DDS Spy来调试 DDS 应用程序。我注意到间谍工具中的奇怪消息,我认为这些消息不是来自我的应用程序。
问题是如何获取Src HostId
并找出发件人的 IP 地址?(Wireshark 不是一个选项。)
data-distribution-service - RTI DDS 订阅者未从发布者获取数据
小故事:我的 DDS 订阅者无法看到来自我的 DDS 发布者的数据。我错过了什么?
很长的故事:
我有一个 QNX VM(托管在网络上,而不是我的机器上),它通过 RTI DDS 发布一些数据。数据从未出现在我的 Windows 7 订阅者应用程序中。
有趣的是,我可以将相同的代码放在 VM B 上,然后订阅者获取数据。认为这一定是 Windows 7 防火墙问题,我将 VM A 的 IP 地址与 VM B 交换,但这并没有帮助。
使用 Wireshark,我可以看到来自 VM A 的一些心跳流量,但没有数据。从 VM B,我看到了心跳流量和数据。下面是经过消毒的 Wireshark 片段。
NDDS_DISCOVERY_PEERS
设置为包括多播和每个对话另一方的显式 IP 地址。QOS 配置文件相同,RTI Analyzer 指示匹配分析成功(全为绿色)。
虚拟机甲:
NDDS_DISCOVERY_PEERS=udpv4://239.255.0.1,udpv4://127.0.0.1,udpv4://BLAH.203
虚拟机乙:
NDDS_DISCOVERY_PEERS=udpv4://239.255.0.1,udpv4://127.0.0.1,udpv4://BLAH.203
Windows 7 盒子:
NDDS_DISCOVERY_PEERS=udpv4://239.255.0.1,udpv4://127.0.0.1,udpv4://BLAH.113,udpv4://BLAH.114
当我将它们包含NDDS_DISCOVERY_PEERS
在行中时,网络上的其他人可以在他们的 Windows 7 机器上通过 DDS SPY 看到来自 VM A 的 DDS 流量。我的 Windows 7 盒子不能。
Windows 7 事件日志似乎没有显示任何防火墙或 WFP 停止数据包。
在我的 Windows 7 机器上运行的 RTI DDS Spy 显示 VM A (0A061071) 写入器在网络上可见,但没有接收到数据。它还显示我的 Windows 7 机器上的订阅者中的阅读器是可见的,尽管它显示在一个奇怪的 IP 地址上。
额外的问题(只是出于好奇,不是主要问题):为什么我的本地机器上的流量显示在 DDS SPY 中192.168.11.1
而不是我机器的 IP 甚至127.0.0.1
?
主要问题:我错过了什么?
更新:
route print
在我的 Windows 7 盒子上似乎显示我已经加入了一个带有 VM A 的多播组。
netsh interface ip show joins
似乎同意。
调查更新:
我重新启动了VM,但没有效果。
我重新启动了 Windows 框,但没有效果。
我从
NDDS_DISCOVERY_PEERS
两边的环境变量中删除了多播,但没有效果。Windows 7 机器具有三个网络接口(加上环回):1 个 LAN 连接和 2 个(不相关的)VM 适配器。我们正在使用 LAN 连接。QNX VM 有一个网络接口(加上环回)。请注意,工作 VM 和损坏的 VM 使用不同的以太网驱动程序,因为它们与 QNX 6.4.1 的风格略有不同。坏的有
wm0
接口,工作的有en0
接口。我不认为这是问题所在,但这是不同的。我在“损坏的”QNX VM 上运行 DDS SPY,而它正在播放,我得到了 DDS 数据。我没有一个很好的方法来嗅探虚拟机所在的位置和我的 Windows 7 机器之间的网络,看看它是否会离开接口,但是查看 QNX 虚拟机上以太网接口的传输数据包计数表明它肯定在传输某些东西,而 Wireshark 在 Windows 7 机器上捕获的内容表明至少有一些流量正在通过。
LAN 上的其他人可以看到来自“损坏的”虚拟机的 DDS 流量,这让我相信这是 Windows 设置问题,而不是损坏的虚拟机——我只是看不出它可能是什么。我重新检查了防火墙,但无济于事。我原以为如果是防火墙问题,当我在 VM A 和 VM B 之间交换 IP 地址时,问题就会消失。无论如何,Windows 7 防火墙当前已关闭,但无济于事。
下面是 Wireshark 输出的几个屏幕。我在第三和第四之间跳过了一堆,因为在第四之后,流量往往看起来像第四的底部,直到结束。
(这里跳过了一堆) (几乎像上面的最后 11 行一样继续)
我还应该尝试什么?
更新:
要在下面回答 Rose 的问题,rtiddsping -publisher
请在坏的 VM 上使用并rtiddsping -subscriber
正常工作。
我想知道这个问题是否是由奇怪的 IP 地址引起的。它碰巧发布并以某种方式锁定到的 IP 地址是本地 VM 以太网适配器(与 VM A 分开)。请参阅下面的屏幕截图。
我希望它附加的地址是 10.6.6.203。有什么办法可以指定吗?
c++ - 这个 C++ 代码结构是什么意思?
我找到了以下代码(自动生成,但无法编译),现在我想知道它的含义:
正如一些人指出的那样,## 是用于宏的,实际上代码在宏中。我没有意识到这一点,并试图将其直接放入代码中以获得更清晰的错误消息。原来的宏是:
原来的编译器错误是:语法错误:缺少';' 在标识符“类型”之前
我手动插入宏并应用##:
但它直接在 typedef 的行中说:缺少';' 在标识符“类型”之前(编译器是安装了 SP1 的 VS2010)
谁能告诉我?(代码由 OpenSplice 的 idlpp.exe 生成)
原因现在很清楚(我忘记了 idl 中的 #pragma keylist 条目) - 没有生成 UnboundedStringWithKeyTypeSupport。但这是一个不同的问题。
问候托拜厄斯
data-distribution-service - Opensplice DDS 持久数据可以有多大?
我想知道我是否可以将大量数据放入我的软件中,或者我是否必须使用外部解决方案。
使用 OpenSplice DDS 或 RTI 的 DDS 的持久性可以放置多少数据?
qt - Qt与RTI DDS交互---需要一些指导
我正在制作一个 GUI,其中我在 QStackedWIdget 上有多个表单。现在我希望这些表格中的数据在可用时更新。数据将通过 RTI DDS 接收。有人可以建议我一些从非 GUI 线程更新 GUI 数据的示例或链接。
谢谢你。
c++ - How to pass a C++ Map into a RTI DDS connext Publisher and receive at RTI Subscriber
I am new to RTI DDS connext. I tried running some C++ examples(Hello_dynamic,Hello_simple) of rti and they where working fine.Then i thought of passing a C++ map as Topic type from publisher to Subscriber.But i guess their is no documentation and example codes are available for doing this. Please help me here ..??