Recording other vendors' data

4 posts / 0 new
Last post
Offline
Last seen: 4 years 4 months ago
Joined: 08/13/2014
Posts: 55
Recording other vendors' data

Hi

I want to know whether it is possible to record other vendors' (e.g OpenSplice ...) data with recording service or not. I have tried to do that but got the following error :

"Failed to get valid typecode information for Publisher of Topic 'SampleStatus'. Recorder will NOT be able to record type 'DDSPackets::Main::IDL_Status::payload' in deserialized mode".

Thanks in advance for your help.

Bonjefir

 

Organization:
Offline
Last seen: 4 years 4 months ago
Joined: 08/13/2014
Posts: 55

Any Answers?

Gerardo Pardo's picture
Offline
Last seen: 1 day 9 hours ago
Joined: 06/02/2010
Posts: 601

Hello,

This error is caused because OpenSplice does not propagate type information in a standard format. As far as I know OpenSplice still does not implement the DDS-XYPES specification which is the standard way to propagate type information on the wire.

That said I think it would be possible to use RTI Recorder to record data from OpenSplice. But you would need to do one of two things:

  1. Declare the data-types in the RTI Recorder Configuration XML file. This is done inside the <types></types> tag. Note that you have the IDL description of the data-types published by OpenSplice then you can run the rtiddsgen tool with  the  -convertToXml option to create the XML description on the types which then you can paste into the RTI Recorder Configuration XML file.
  2. You can record the data in serialized form. This is done using the tag  <deserialize_mode>RTIDDS_DESERIALZEMODE_NEVER</deserialize_mode>  also in the RTI Recorder Configuration XML file.

Check section 4.10 of the RTI Recording Service User Manual for how to configure the types into RTo Recording Service using XML.

Note that I have not actually tried to record data from OpenSplice so perhaps there will be some additional issue. However given that RTI Recording Service is just a DDS application that uses the standard DD APIs / protocol to discover and subscribe to the the data I think it should work. The one exception is the propagation of type information which is a separate standard (DDS-XTYPES).

Gerardo

Offline
Last seen: 4 years 4 months ago
Joined: 08/13/2014
Posts: 55

Dear Gerardo

First thanks for your answer. Second as you suggested, I used the tag  <deserialize_mode>RTIDDS_DESERIALZEMODE_NEVER</deserialize_mode>  but got the following errors:

exception:[RTIDRTUserDataEvent_process@105]:Failed to create topic DCPSSubscription of type kernelModule::v_subscriptionInfo

exception:[RTIDRTUserDataEvent_process@105]:Failed to create topic DCPSParticipant of type kernelModule::v_participantInfo

exception:[RTIDRTUserDataEvent_process@105]:Failed to create topic DCPSSubscription of type kernelModule::v_subscriptionInfo

exception:[RTIDRTUserDataEvent_process@105]:Failed to create topic DCPSPublication of type kernelModule::v_publicationInfo

exception:[RTIDRTUserDataEvent_process@105]:Failed to create topic DCPSTopic of type kernelModule::v_topicInfo 

About your first suggestion, I think it's not possible in my case, because there are a lot of data-types and it's practically impossible to do that. What should I do?

Bonjefir