2017-03-21 1 views
0

2つのプログラムがあります.1つはOpenSplice 6.7.1ともう1つはOpenDDS 3.10です。OpenDDSとOpenSpliceの相互運用性

彼らは両方のプロトコルとしてRTPS、同じドメインID宛先ポートを(私のwiresharkを使用して検証)を使用しています。

問題は、通信していないということです。私は設定に何かをやっている場合、私は知らない

...私はRTPSとOpenDDSのための基本的な設定を使用していますし、OpenSpliceのために私は、ドメインIDを変更した後に提供さospl.xmlを使用しました。

ここに私の設定ファイルがあります。 OpenDDSの場合 :OpenSpliceについては

[common] 
DCPSGlobalTransportConfig=$file 
DCPSDefaultDiscovery=DEFAULT_RTPS 
[transport/the_rtps_transport] 
transport_type=rtps_udp 

:私が間違っているのは何

<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> 

答えて

0

複数ベンダの相互運用性がOMGイベントで繰り返し示されていますが、最近ではありませんので、いずれの製品でも回帰が起こっている可能性があります。

あなたのOpenSpliceの設定は(通常、ユーザーがDDS :: DOMAIN_ID_DEFAULTを使用してOSPL_URI環境変数が指すような設定で指定されたIDを使用するように指定するアプリケーションで使用されるdomainIdとは別です) )適切なデフォルト設定。マルチホームマシンを使用する場合は、使用するインターフェイス/ IPアドレスのAUTO設定が混乱の原因になる可能性があることにご注意ください。

次に、(DDSI)トレースおよび/またはwiresharkキャプチャの両方を見て、両方のベンダーのDDSIワイヤフレームを検出するかどうかを確認します(PrismTechの場合は1.2、OCIの場合は1.3)。

たとえば、OpenSpliceのDDSIトレースでベンダー1.3の兆候が確認されていない場合、「基本的な」通信上の問題が残っていることが示唆されます。

これらのOMGイベントでは、相互運用性を検証するために、ドメイン '0'とモジュールレスIDLのトピックタイプ仕様で(バンドルされた)iShapesサンプルを使用していましたあまりにも試みる価値のあるもの(とあまりにも/その例と組み合わせて使用​​するのwiresharkのを確認してください)

だアプリケーション私はまた、この上の新たな情報のためのコミュニティ・フォーラムを見ておこう。..

+0

私は上の私のポストを更新この問題に関するフォーラム 私は自分のIDLを変更し、モジュールレスではあるが相互運用性はまだない。私はOpenDDSが提供するiShapesのIDLを変更し、モジュールレスにして、ソースファイルに必要な変更を加えたが、iShapesの相互運用性はまだない。 10.0.2.15

+0

wiresharkを使ってパケットをトレースしました。面白いことに気づきました.OpenSpliceは正しいインターフェイスを使って通信しています。定期的に3パケットを送信しています同じ長さですが、私のデータを公開すると、出版社は受け取っていますが、私はwiresharkに何も見ません!送信されるデータのトレースはありません! openSpliceでopenSpliceを使用すると、参加者が接続されているときにopenDDSがHEARTBEATパケットの送信を開始します。これは、別の参加者が検出されたときの通常の動作です。ただし、送信されたデータと切断は検出されません。 –