我有一个通过RS-232接口控制的硬件设备(它是一个超声波脉冲接收器)。我需要写一个程序把命令从我的计算机发送到设备。然而,不同寻常的是,设备没有串行端口(db-9com端口),而是有一个rj45插座(以太网插座)。设备配有一个适配器,用于将设备上的以太网端口连接到串行电缆,以便与计算机通信。
不幸的是,我的电脑没有串行端口-只有以太网端口。如果可能的话,我想去掉适配器,用以太网电缆将我的计算机直接连接到设备上。这在物理上是可能的-但我不知道如何转换消息协议?例如,我的设备没有用来打开TCP套接字的IP地址?
到目前为止,我一直在使用boost.asio(在ubuntu的一个盒子上)通过tcp套接字向其他支持tcp的设备发送消息流。如果可能的话,我想继续使用boost.asio库,因为它是跨平台的。我不知道从哪里开始-我一直使用boost.asio库,它很好地隐藏了大多数协议问题。不过,我相信这是可能的,因为有些Windows程序似乎也会做类似的事情,请参见,例如http://com0com.sourceforge.net/
欢迎任何指导意见。非常感谢

最佳答案

实际上,它在身体上不起作用。它只是机械地工作。以太网使用的物理电压和电流与串行端口使用的电压和电流非常不同。不仅如此,皮诺也不兼容。
幸运的是,以太网使用磁耦合信号,否则你会炸了你的主板或超声波设备。
这不仅仅是软件协议的问题。

关于c++ - 通过以太网电缆(tcp)进行rs-232串行连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4410309/

10-11 05:58