给定一个 DDS 主题名称,是否可以在 运行 时间确定主题类型信息?
Given a DDS topic name, can the topic type information be determined at run-time?
我正在评估使用 C++ 工作的 RTI ConnextDDS。在 运行 时间,在读取 DDS 消息并提取主题名称时,是否有一个 API 提供关于该主题的 运行 时间类型的信息?那就是我可以得到主题中每个元素的名称和类型吗?
是的,这是可能的,虽然并不简单。
以完全动态的方式执行此操作需要检查所谓的内置主题,其中包含有关发现的不同 DDS 实体的信息。参见 Chapter 17 "Built-In Topics" in the Core Libraries User's Manual. This RTI community example on built-in Topics 也可能有帮助。
特别是,PublicationBuiltinTopic
和 SubscriptionBuiltinTopic
包含字段 type
和 type_code
,它们都旨在包含与Topic
对于有问题的 DataWriter 或 DataReader。 type
字段属于 TypeObject
,在 OMG DDS-XTypes specification 中标准化。 type_code
字段是专有格式,如用户手册中所述。
在走完这整条路之前,我会确保这是你真正想做的事情,为什么?理想情况下,产品随附的工具应为您提供所需的所有信息。
我正在评估使用 C++ 工作的 RTI ConnextDDS。在 运行 时间,在读取 DDS 消息并提取主题名称时,是否有一个 API 提供关于该主题的 运行 时间类型的信息?那就是我可以得到主题中每个元素的名称和类型吗?
是的,这是可能的,虽然并不简单。
以完全动态的方式执行此操作需要检查所谓的内置主题,其中包含有关发现的不同 DDS 实体的信息。参见 Chapter 17 "Built-In Topics" in the Core Libraries User's Manual. This RTI community example on built-in Topics 也可能有帮助。
特别是,PublicationBuiltinTopic
和 SubscriptionBuiltinTopic
包含字段 type
和 type_code
,它们都旨在包含与Topic
对于有问题的 DataWriter 或 DataReader。 type
字段属于 TypeObject
,在 OMG DDS-XTypes specification 中标准化。 type_code
字段是专有格式,如用户手册中所述。
在走完这整条路之前,我会确保这是你真正想做的事情,为什么?理想情况下,产品随附的工具应为您提供所需的所有信息。