我有一台计算机正在运行c++程序来控制机器人,另一台计算机正在运行计算机视觉系统(也是用c++编写的)。我希望这两个程序能够相互对话。通信不必很复杂,我只需要机器人计算机能够告诉视觉计算机试验何时开始和结束(何时开始和停止数据收集序列)。你们中有谁有关于如何处理这个问题的建议吗?计算机之间的Rs232通信?某种网络解决方案?烟雾信号?任何建议都将受到欢迎。提前谢谢你
(编辑)如果您认为上面的陈述含糊不清:
我需要从一台计算机向另一台计算机传递一个二进制(go/ to‘t go)信号。不幸的是,我不能更具体地说明这将是什么样子,因为(显然)我不知道有什么可用。两台计算机都在网络上,并且两台计算机都运行windows。目标是使计算机视觉系统收集的数据与机器人执行的动作同步。通信确实需要足够快,不会减慢机器人或计算机视觉程序的速度。一个“好”的解决方案应该是: 1)容易实现2)快速。我对网络了解不多,我正在寻找一个开始寻找的地方。
再次感谢您的帮助
发布于 2010-07-30 04:08:46
您可以使用简单的UDP协议-其优点是,如果您理解RS232上的简单数据包协议的概念,您将发现通过UDP发送数据包的知识很容易。
如果您需要两台PC之间的可靠字节流(如在中,系统的其他部分会担心错误和重试),那么使用TCP/IP并不比使用UDP复杂多少。
UDP和TCP都是通过“套接字”访问的。我担心你会发现在C++中有相当多的繁琐的样板文件来让它工作,但也有很多很多的例子。
发布于 2010-07-30 04:07:44
如果它们是网络连接的,您可以只使用套接字。
发布于 2010-07-30 04:11:22
最好的选择是使用网络通信。实现这一点的最简单方法应该是查看Qt中的网络示例。
基本上,您将创建一个客户端和一个服务器应用程序。当客户端看到来自服务器的特定消息时,您可以决定它将执行什么操作。就这样。Qt应该会处理剩下的事情。
其他答案建议使用TCP/IP、UDP、RS232等。当您使用QtNetwork模块时,所有这些都只是选项。我假设,既然你问了你的问题,你就不知道它们之间的区别。因此,最安全的选择是使用最高级别的(免费)库,因此建议研究一下Qt。
另一种选择是使用Boost.Asio。我倾向于使用Qt解决方案,因为他们的API更好。
https://stackoverflow.com/questions/3366505
复制相似问题