我有两个程序,一个使用OpenSplice 6.7.1和另一个使用OpenDDS 3.10。OpenDDS和OpenSplice的互用性
它们都使用RTPS作为协议中,相同的域ID和目的地端口(I验证使用的Wireshark)。
问题是他们没有沟通。
我不知道我是否在做任何错误的配置...我使用OpenDDS的基本配置RTPS和OpenSplice我更改域ID后使用提供的ospl.xml。
这是我的配置文件。 对于OpenDDS:
[common]
DCPSGlobalTransportConfig=$file
DCPSDefaultDiscovery=DEFAULT_RTPS
[transport/the_rtps_transport]
transport_type=rtps_udp
对于OpenSplice:
<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>
我在做什么错?
我更新我的岗位上有关这个问题的论坛。 我修改了我的IDL,使它们无模块化,但仍然没有互操作性。我修改了OpenDDS提供的iShapes的IDL并使其无模块化,并对源文件进行了必要的修改,但两个iShapes之间仍然没有互操作性。我按照你的建议添加了IP地址: 10.0.2.15 NetworkInterfaceAddress> –
我使用wireshark来跟踪数据包,并且我注意到一些有趣的事情:OpenSplice使用正确的接口进行通信,它周期性地发送3个数据包长度相同,但是当我发布我的数据时,发布者会收到,但我在wireshark上看不到任何内容!没有发送数据的痕迹! 当我在openSplice中使用openDDS时,当参与者连接时,openDDS开始发送HEARTBEAT数据包,这是检测到另一个参与者时的正常行为!但是,发送的数据和断开连接仍未检测到! –