我有一个通过无线电与 ROS 节点通信的 DDS 系统(OMG DDS)。接收到的信息是一个具有速度、状态、经度、纬度等的结构。这很好用,我的 DDS 客户端可以毫无问题地打印通过无线电从节点传输的信息。现在,我有一个用 Qt 编写的 GUI 应用程序,它创建模型并将它们放在预定义的地图上。这些模型已经定义了集合信息函数,当触发它时会更新地图以提供其接收到的信息的平滑可视化。
现在问题来了,我不知道如何让 GUI 应用程序与我的 DDS 客户端通信。我宁愿不将这两者交织在一起,因为仅仅让 DDS-client 和 sender 工作并使用 ROS 编译,我已经遇到了很多麻烦。我虽然有一个单独的队列系统,它可以包含在 DDS 客户端和 GUI 应用程序中,但我不知道这是否可行。我也考虑过编写一个 SQL 数据库,然后推送新数据,并在我的 GUI 应用程序中检测到新数据时提取新数据。某种触发拉取函数的 on_data_available 函数。我听说最后一个是个坏主意,因为我只使用一组不断更新的数据(模型代表一个 USV),然后数据库被认为是矫枉过正,但我很想在这里获得输入.
如果这不是足够的信息,我很抱歉,由于不同的原因,我不能真正提供代码示例。如果有人有任何意见,请大声喊出来,很想听到他们的声音。如果我不够具体,我会尽可能地重写它。