シリアルポートからプリンタにデータを送信するには?

シリアルポートからプリンタにデータを送信するには?

既存の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

これら2つのコマンドをサブシェルにラップし、その出力をリダイレクトして、開いているプロセスがないとき(および間)、/dev/lp0stty設定がデフォルト値にリセットされるのを防ぎます。/dev/lp0sttycat

/dev/ttyS0たとえば、入力処理を削除するなど、設定を変更する必要があります。 (stty -F /dev/ttyS0 -icanon -echo min 8 time 1これはmin 8 time 1、少なくとも1バイトを読み取り、1/10秒後に入力が利用できなくなった場合、またはより多くの入力が利用可能になった場合、読み取りがすぐに返されることを意味します。最大8バイトを読み取った後に返されます。)

関連情報