Я оцениваю RTI ConnextDDS, работаю в C ++. Во время выполнения, при чтении сообщения DDS и извлечении имени темы, существует ли API, который предоставляет информацию о типе времени выполнения, относящуюся к этой теме? То есть я могу получить название и тип каждого элемента в теме?
Да, это возможно, хотя и не так просто.
Выполнение этого полностью динамическим способом требует проверки так называемых встроенных разделов, которые содержат информацию о различных обнаруженных объектах DDS. Увидеть Глава 17 «Встроенные разделы» в Руководстве пользователя основных библиотек. Этот пример сообщества RTI на встроенных темах может также помочь.
В частности, PublicationBuiltinTopic
и SubscriptionBuiltinTopic
содержат поля type
а также type_code
, которые оба должны содержать описание типа, связанного с Topic
для рассматриваемого DataWriter или DataReader. type
поле имеет TypeObject
который стандартизирован в Спецификация OMG DDS-XTypes. type_code
Поле является закрытым форматом, как описано в Руководстве пользователя.
Прежде чем идти по этому пути, я бы хотел убедиться, что это то, что вы действительно хотите сделать, и почему? В идеале, инструмент, который поставляется с продуктом, должен предоставить вам всю необходимую информацию.
Других решений пока нет …