Hi,
I wanted to try XML-Based Application Creation with the python examples in https://github.com/rticommunity/rticonnextdds-connector-py. My objective is to create a data_reader and/or data_writer with type name: “DDS::KeyedString”. I tied the following config and none is worked.
1. Create a topic without register_type:
<topic name="keyedStringTest" register_type_ref="DDS::KeyedString"/>
2. Create a topic and register_type without creating type:
<register_type name="DDS::KeyedString"/> <topic name="keyedStringTest" register_type_ref="DDS::KeyedString"/>
3. Create a topic with register_type and define types:
<types> <!-- other type defintion --> <module name="DDS"> <struct name="KeyedString"> <member name="key" type="string" key="true"/> <member name="value" type="string"/> </struct> </module> </types> <!-- Domain Library --> <domain_library name="MyDomainLibrary"> <domain name="MyDomain" domain_id="0"> <register_type name="keyedStringType" type_ref="DDS::KeyedString"> <registered_name>DDS::KeyedString</registered_name> </register_type> <topic name="keyedStringTest" register_type_ref="keyedStringType"/> </domain> </domain_library>
I got always the following error:
DS_DynamicDataReader_narrow:ERROR: Bad parameter: wrong type reader
RTIDDSConnector_allocateReaderTable:DDS_DynamicDataReader_narrow
RTIDDSConnector_newI:Failed to allocate reader table
Is there anyone who tried this or have any idea how to do it?
In the last case, I can change the registered_name to something like DDS;;KeyedString and it works. I can’t figure out why “::” causes this issue.
In the attachment section, I added the complete configuration file.
Best,
Attachment | Size |
---|---|
shapeexample.xml | 5.4 KB |
Hi,
The type name "DDS::KeyedString" is pre-registered by default by all the DDS domain participants, so Connector won't let you register it again. Using a different name is fine, since by default readers and writers for the same topic match based on the type definition, not on the type name.
Alex