我正在使用socat创建虚拟串行端口。
socat -d -d pty,echo=0,raw pty,echo=0,raw
到目前为止,这是按预期工作的。使用echo / cat我可以发送/接收文本等。
但是像DTR或RTS这样的信号线呢?如何使用pty获取/设置这些行的状态?这甚至可能吗?我在任何地方都找不到任何关于它的提及。
答案 0 :(得分:1)
socat是一个管道处理程序,基本上可以让你点击Tx和Rx"行"无需在发送/接收数据时就必须关心信号。
RTS / CTS / DSR / DTR是串行连接器中的实际引脚,用于控制Tx / Rx线路上发生的情况。
在我的脑海中,我还没有使用过socat,也没有尝试做类似的事情,我得到的最低级别是EMV接口和协议,有时候当我和#39时我也会在机器之间快速实现netcat。 ;我太懒到cp到httpd home中的目录...无论如何,如果你试图用socat连接两个实体(单独的机器,或同一台机器上的应用程序)你要么使用相同的管道并指定一些控制字符,所以他们最终同时说话(记住这一点,并尝试以某种方式与我的妻子实现),或使用两个单独的管道,一个用于Rx,一个用于Tx:实体1的Tx去在实体2的Rx中,实体2的Tx进入实体1的Rx。
答案 1 :(得分:1)
从您的评论中,您可能希望独立于数据流控制RTS / CTS。您必须使用ioctls编写应用程序以与串行端口进行交互。
我发现这个有用的论坛帖子(带有示例应用程序) https://www.linuxquestions.org/questions/programming-9/manually-controlling-rts-cts-326590/