我有一个电话系统连接到我的旧 Ubuntu 机器并正在从中接收 SMDR 数据。连接到的dev/lp0
是点阵打印机,连接到电话系统/dev/ttyS0
目前我正在使用命令cat /dev/ttyS0 > /dev/lp0
。这有点工作,但 smdr print 已经有用于打印机的 cr 和 lf 命令。 Cat send 使打印机多送一行。有没有办法不断地echo ttyS0
或lp0
我可以做其他事情?谢谢
答案1
您需要从 中删除后处理/dev/lp0
。请尝试以下操作:
(
stty -F /dev/lp0 -opost
cat /dev/ttyS0
) > /dev/lp0
将这两个命令包含在子 shell 中并重定向其输出,以防止在没有进程打开时(在和 之间)/dev/lp0
将 stty 设置重置为默认值。/dev/lp0
stty
cat
也许您还需要更改/dev/ttyS0
设置,例如删除任何输入处理:(stty -F /dev/ttyS0 -icanon -echo min 8 time 1
这min 8 time 1
意味着一旦读取了至少一个字节并且在 1/10 秒后没有进一步的输入可用,或者如果有更多输入可用,则读取将立即返回最多读取 8 个字节后将返回)。