..마니 고민해보니.... 결론이 좀 복잡할수 있겠네요...

속도가 필요하신경우라면 시리얼 디바이스 드라이버를 수정하세요
인터럽트에서 데이타가 들어올대마다 XON/XOFF 를 판별해서
플래그를 세워놓고 read 함수에서
이 플래그를 보고 그냥나가거나 정상처리를 하면 되겠죠.. 그리고 덤으로
이 플래그를 변경하는 ioctl 함수도 만들어 놓고요..


이철환 wrote..
: 먼저 답변 감사합니다.
: 하지만. 문제가 XON/XOFF 를 사용해야 하는 입장입니다.
: 왜냐면 제가 보내는 문자를 받는 곳이 CNC 장비 쪽이다 보니
: 서로간에 프로토콜을 마음대로 정할수 없는 상태로 표준 XON/XOFF 나 RTS/CTS
: 를 사용 해야 하는데 대부분의 장비가 XON/XOFF를 사용 하더군요.
: 참 여러 가지 방법으로 해보았는데도 문제 해결이 보이지 않습니다.
: 보내기전 강제로 시리얼 read를 해서 들어온 문자가 XOFF면 루프를 돌리고
: XON이면 전송으로 복귀하는 걸로 했는데.
: 결국 처리를 빨리하면. XON이나XOFF를 놓치는 경우가 발생 하고 그러기에..
: 결국 속도를 줄리는 방법 밖에 없는데 그것도 문제가 됩니다. 시리얼이 원 래
: 느린데 더욱 느려지는 현상이 발생 함으로 사용이 불가능 해 지더군요...
: 아 딱 좋은 방법이 없는 지 모르겠습니다.
:
: 푸지 wrote..
: :
: : 가장좋은건 XON/XOFF 를 사용하지 않는거지요
: : 서로간의 프로토콜을 정해서 핸드쉐이크하면 되겟죠..
: : 속도가 문제가 된다면 RTS/CTS 를 이용하는 방법도 있겠죠(이게 가장간 단)
: :
: : 질문하신 내용중 fgetc 로 받아서 시리얼로 드라이버로 write 하기전에 시 리얼
: : 에서 read 로 데이타를 읽어 확인하면 되지 않을까요. 물론 시간지연없 이 읽게
: : 끔 시리얼을 설정해야죠..