J'ai deux programmes, l'un utilisant OpenSplice 6.7.1 et l'autre utilisant OpenDDS 3.10.Interopérabilité OpenDDS et OpenSplice
Ils sont tous deux utilisent RTPS comme protocole, le même id de domaine et le port de destination (I vérifié en utilisant wireshark).
Le problème est qu'ils ne communiquent pas.
Je ne sais pas si je fais quelque chose de mal avec la config ... J'utilise la configuration de base pour OpenDDS avec SPTR et OpenSplice J'ai utilisé le fourni ospl.xml après avoir modifié l'ID de domaine.
Voici mes fichiers de configuration. Pour OpenDDS:
[common]
DCPSGlobalTransportConfig=$file
DCPSDefaultDiscovery=DEFAULT_RTPS
[transport/the_rtps_transport]
transport_type=rtps_udp
Pour 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>
Qu'est-ce que je fais mal?
je mis à jour mon post sur la forum sur ce problème. J'ai modifié mes IDL et les ai rendus sans module mais toujours pas d'interopérabilité. J'ai modifié l'IDL de iShapes fourni par OpenDDS et l'ai rendu sans module et ai fait les modifications nécessaires sur les fichiers source mais toujours pas d'interopérabilité entre les deux iShapes. J'ai ajouté l'adresse IP comme indiqué: 10.0.2.15 NetworkInterfaceAddress> –
J'ai utilisé wireshark pour tracer les paquets et j'ai remarqué quelque chose d'intéressant: OpenSplice utilise la bonne interface pour communiquer, il envoie périodiquement 3 paquets qui ont la même longueur mais quand je publie mes données, l'éditeur reçoit mais je ne vois rien sur wireshark!Il n'y a aucune trace des données qui sont envoyées! Lorsque j'utilise openDDS avec openSplice, lorsqu'un participant est connecté, openDDS commence à envoyer des paquets HEARTBEAT, ce qui est un comportement normal lorsqu'un autre participant est détecté! Cependant les données envoyées et la déconnexion restent non détectées! –