I'm using the RTI Python Connector for v6.0 and want to write to an old system running v5.3. In the datawriter_qos I believe I have to specify the DataRepresentation for xcdr version 1. But I'm having trouble finding the exact syntax / keywords to use.
<qos_library name= .....
<qos_profile name= ....
<datawriter_qos>
<data_representation?>
<version?> "xcdr?" </version?>
</data_representation>
.....
The default data representation in 6.0 is still XCDR1. XCDR2 is available, but it's not used by default.
Are you having trouble communicating between the two applications or were you just expecting that you might have to change the data representation?
As mentioned above it isn't necessary to change the data representation version (since they both use XCDR1 by default).
If you are struggling to get communication between these 2 versions, one reason could be related to your type. If it contains unbounded sequences or strings, the way we represent these is different between these two versions. You can read more here but you might need to add stringMaxLen to unbounded strings in your XML type.
I was using stringMaxLength="256" with v6.0 and should have used "255" to have it compatible with existing devices using DDS v5.3. Also, now the same v6.0 QoS files work with v5.3. I just change the reader base index.
I thought I saw something on the forum about RTI working on 'professionalizing' the RTI Connector but can't relocate it. Any comment? Python binding?
Thanks for clarifying the XCDR.
RTI Connector for Python and for Javascript will be productised in Q4 of 2019. The other bindings (Go, C# among others) will not be modified.
Sam
@samr Would it be possible to install just the RTI Connext DDS Connector Python binding without its associated ARM Linux librtiddsconnector.so, and have it use the existing RTI DDS runtime library on a RPi3B based product developed with RTI Connext DDS Pro?
Hi webhopper,
Sorry I don't quite understand your question.
If you're asking whether you can use a dynamic library instead of the static one which is released alongside Connector, the answer is no, you need to use the supplied librtiddsconnector.so (or equivalent for your architecture).
If I've misunderstood your question let me know.
Sam
Hi Sam,
Thanks - you answered my question - must use the static lib with Connector.
But would there be any issue running my Python Connector program, using the static lib, on the same RPi3B that is already running a RTI DDS Pro developed C++ app? I would be subscribing to the Pro App topics.
I would like to be able to extend the existing underwater ROV's embedded app's functionality without being able to modify the existing code.
Bill