首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenDDS和OpenSplice互操作性

OpenDDS和OpenSplice互操作性
EN

Stack Overflow用户
提问于 2017-03-21 09:05:11
回答 1查看 1K关注 0票数 0

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

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

问题是他们没有交流。

我不知道我是不是做错了配置.我使用OpenDDS的基本配置( RTPS ),对于OpenSplice,我在更改域ID后使用了提供的ospl.xml。

这是我的配置文件。For OpenDDS:

代码语言:javascript
复制
[common]
DCPSGlobalTransportConfig=$file
DCPSDefaultDiscovery=DEFAULT_RTPS
[transport/the_rtps_transport]
transport_type=rtps_udp

For OpenSplice:

代码语言:javascript
复制
<OpenSplice>
    <Domain>
        <Name>ospl_sp_ddsi</Name>
        <Id>223</Id>
        <SingleProcess>true</SingleProcess>
        <Description>Stand-alone 'single-process' deployment and standard DDSI networking.</Description>
        <Service name="ddsi2">
            <Command>ddsi2</Command>
        </Service>
        <Service name="durability">
            <Command>durability</Command>
        </Service>
        <Service name="cmsoap">
            <Command>cmsoap</Command>
        </Service>
    </Domain>
    <DDSI2Service name="ddsi2">
        <General>
            <NetworkInterfaceAddress>AUTO</NetworkInterfaceAddress>
            <AllowMulticast>true</AllowMulticast>
            <EnableMulticastLoopback>true</EnableMulticastLoopback>
            <CoexistWithNativeNetworking>false</CoexistWithNativeNetworking>
        </General>
        <Compatibility>
            <!-- see the release notes and/or the OpenSplice configurator on DDSI interoperability -->
            <StandardsConformance>lax</StandardsConformance>
            <!-- the following one is necessary only for TwinOaks CoreDX DDS compatibility -->
            <!-- <ExplicitlyPublishQosSetToDefault>true</ExplicitlyPublishQosSetToDefault> -->
        </Compatibility>
    </DDSI2Service>
    <DurabilityService name="durability">
        <Network>
            <Alignment>
                <TimeAlignment>false</TimeAlignment>
                <RequestCombinePeriod>
                    <Initial>2.5</Initial>
                    <Operational>0.1</Operational>
                </RequestCombinePeriod>
            </Alignment>
            <WaitForAttachment maxWaitCount="100">
                <ServiceName>ddsi2</ServiceName>
            </WaitForAttachment>
        </Network>
        <NameSpaces>
            <NameSpace name="defaultNamespace">
                <Partition>*</Partition>
            </NameSpace>
            <Policy alignee="Initial" aligner="true" durability="Durable" nameSpace="defaultNamespace"/>
        </NameSpaces>
    </DurabilityService>
    <TunerService name="cmsoap">
        <Server>
            <PortNr>Auto</PortNr>
        </Server>
    </TunerService>
</OpenSplice>

我做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2017-03-22 13:02:25

多厂商互操作性已经在OMG事件中反复演示过,但最近没有,因此可能在这两种产品中都发生了倒退。

您的OpenSplice配置(除了与应用程序中使用的domainId相匹配的配置之外,用户通常使用DDS::DOMAIN_ID_DEFAULT来表示他们希望使用OSPL_URI环境变量所指出的配置中指定的ID )是一个正确的默认配置。我相信你知道,如果你使用多主机的话,将要使用的接口/IP地址的自动设置是一个潜在的混乱源。

因此,接下来将查看这两种( DDSI )跟踪和/或wireshark捕获,看看是否发现了两个供应商的DDSI有线帧( PrismTech为1.2,OCI为1.3 )。

例如,当没有迹象表明供应商--1.3在OpenSplice DDSI中被识别--跟踪时,这表明仍然存在一些“基本”的通信问题。

请注意,在这些OMG事件中,我们通常在域'0‘和模块少的IDL主题类型规范上使用(对于我们来说是“捆绑”的) iShapes示例来验证互操作性,因此它不适用于您的应用程序--这也是值得尝试的东西(并与该示例一起检查/使用wireshark )

我还将继续关注社区论坛,以获取有关这方面的新信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42922482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档