如何在C ++中使用IDL来桥接系统消息

时间:2017-09-29 22:13:21

标签: c++ idl data-distribution-service

我的企业中基本上有两组消息(基本上是在DDS上)。一组是原始系统数据,另一组是复杂的可视数据。

我有一个应用程序,可以为大多数这些消息创建发布者和订阅者。

如何编写一个.idl文件,以便它可以获取系统数据实例(多个),或者通过抛出一点数学来聚合它们,然后将它们作为单个可视数据消息发布出来?

预计将通过添加生成的.IDL重新编译此应用程序。

我正在寻找的例子是:

  • 如何编写.idl来处理此转换
  • 如何公开系统消息订阅者以用于.idl生成的逻辑
  • 同样,我如何让视觉发布者公开以便.idl的逻辑可以访问?

请帮忙。例子很棒和/或特定的链接也是受欢迎的。

1 个答案:

答案 0 :(得分:1)

Interface Definition Language(IDL)是一种描述数据类型和接口的语言。这不是一个编程'语言在某种意义上说它不描述可执行代码;因此,它没有提供对数据进行操作的机制。具体来说,它不允许您“抓取系统数据......并将其发布出去" - 这些任务是申请的一部分。

[有许多编译器可用于编译' IDL将类型和接口定义为标准编程语言。任何可用的DDS或CORBA实现都可能包含这样的IDL编译器。]

所以,为了实现你的目标,你需要做这样的事情:

  1. 在IDL中定义所需的数据类型[s]并将其编译为目标编程语言
  2. 编写代码以某种任意格式收集系统数据
  3. 编写代码以将系统数据分配给IDL指定的数据类型[s]
  4. 编写代码以通过中间件(例如Data Distribution Service(DDS))发布数据类型[s]