직렬 포트에서 프린터로 데이터를 보내는 방법은 무엇입니까?

직렬 포트에서 프린터로 데이터를 보내는 방법은 무엇입니까?

기존 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

이 두 명령을 하위 쉘에 래핑하고 해당 출력을 리디렉션하여 열려 있는 프로세스가 없을 때( 및 사이) /dev/lp0stty 설정이 기본값으로 재설정되는 것을 방지합니다./dev/lp0sttycat

/dev/ttyS0예를 들어 입력 처리를 제거하는 등 설정을 변경해야 할 수도 있습니다 . ( stty -F /dev/ttyS0 -icanon -echo min 8 time 1이는 min 8 time 1최소 1바이트를 읽고 1/10초 후에 더 이상 입력을 사용할 수 없거나 더 많은 입력을 사용할 수 있는 경우 읽기가 즉시 반환됨을 의미합니다. 최대 8바이트를 읽은 후 반환됩니다.)

관련 정보