如何从串口向打印机发送数据?

如何从串口向打印机发送数据?

我有一个电话系统连接到我的旧 Ubuntu 机器并正在从中接收 SMDR 数据。连接到的dev/lp0是点阵打印机,连接到电话系统/dev/ttyS0

目前我正在使用命令cat /dev/ttyS0 > /dev/lp0。这有点工作,但 smdr print 已经有用于打印机的 cr 和 lf 命令。 Cat send 使打印机多送一行。有没有办法不断地echo ttyS0lp0我可以做其他事情?谢谢

答案1

您需要从 中删除后处理/dev/lp0。请尝试以下操作:

(
stty -F /dev/lp0 -opost
cat /dev/ttyS0
) > /dev/lp0

将这两个命令包含在子 shell 中并重定向其输出,以防止在没有进程打开时(在和 之间)/dev/lp0将 stty 设置重置为默认值。/dev/lp0sttycat

也许您还需要更改/dev/ttyS0设置,例如删除任何输入处理:(stty -F /dev/ttyS0 -icanon -echo min 8 time 1min 8 time 1意味着一旦读取了至少一个字节并且在 1/10 秒后没有进一步的输入可用,或者如果有更多输入可用,则读取将立即返回最多读取 8 个字节后将返回)。

相关内容