我做了什么:
三个节点(例如 1、2、3)通过两根电缆连接,即
1
------2
====3
其中节点2
有两个接口分别连接到1
和3
。
我定义了一个键控主题T + KeyA
并将其应用于1
和3
,同时在节点2
上定义了不同的键控主题T + KeyB
。
我失败的地方:
我认为根据这样的定义,节点1
和3
应该相互通信,但实际上它们没有。
我的问题是:
当我不希望节点2
主动响应消息时,如何让节点1
与节点3
通信?使用DDS可以吗?感谢您的任何帮助。
看起来您需要一些东西来桥接节点 2 之间的 DDS 流量。 默认情况下不会发生这种情况,但肯定有一些选项可以使其工作。
它可以在较低的网络层完成。 [您不指定网络层;我假设以太网。 通过将节点 2 设置为充当路由器,并配置其行为的各个方面,您应该能够让 DDS 网络流量无缝通过它。 这可能有些复杂,并且需要了解路由器配置和DDS网络协议(RTPS)的一些细节。
或者,您可以在节点 2 上部署 DDS 应用程序。该应用程序需要执行"桥接"功能,接受来自连接到节点 1 的接口的数据,并将其重复到连接到节点 3 的接口;反之亦然。 此应用程序将在网络堆栈中的"更高"级别运行。 一些DDS供应商提供了完全实现这一点的工具(例如:我的公司Twin Oaks Computing的CoreDX DDS Mux产品)。