![직렬 포트에서 프린터로 데이터를 보내는 방법은 무엇입니까?](https://linux55.com/image/79775/%EC%A7%81%EB%A0%AC%20%ED%8F%AC%ED%8A%B8%EC%97%90%EC%84%9C%20%ED%94%84%EB%A6%B0%ED%84%B0%EB%A1%9C%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EB%B3%B4%EB%82%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
기존 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/lp0
stty 설정이 기본값으로 재설정되는 것을 방지합니다./dev/lp0
stty
cat
/dev/ttyS0
예를 들어 입력 처리를 제거하는 등 설정을 변경해야 할 수도 있습니다 . ( stty -F /dev/ttyS0 -icanon -echo min 8 time 1
이는 min 8 time 1
최소 1바이트를 읽고 1/10초 후에 더 이상 입력을 사용할 수 없거나 더 많은 입력을 사용할 수 있는 경우 읽기가 즉시 반환됨을 의미합니다. 최대 8바이트를 읽은 후 반환됩니다.)