|
답변에 대하여 감사드립니다.
제가 통신은 초보라서....
시간이 된다면 간단한 예제를 들어 설명을 해주실수는 없으신지요?
시간이 허락되지 않으면 소쓰 예제라도....
염치없이 죄송합니다.
박세용 님이 쓰신 글 :
: 이쁜이 님이 쓰신 글 :
: : RS232C로 통신을 하려고 하는데 Send와 Receive buffer를 만들어 놓고 Send Data와 Receive Data를 읽어들일 때 Buffer에 대하여 문의 들이려 합니다.
: : 제가 지금 쓰는 방법은 Send나 Receive Data를 무조건 한번 읽고 나서 Buffer를 초기화 시키는 방법인데 이것이 좀 문제가 있어 Data가 깨집니다.
: : 어디서 듣기로는 한번 쓰거나 읽고 나서 무조건 Buffer를 Clear하는 것이 아니라 os pointer와 Appication pointer를 따로 두어 쓴다는 얘기를 들었는데 어떻게 구현을 해야할지 몰라서요.
: : 아님 좀더 좋은 방법이 있음 한수 가르쳐 주십시오.
: : 많은 조언 부탁드립니다.
: :
:
: 통신상에서 send/receive buffer의 경우에는 자료구조 중에서
: 원형큐(circular queue)를 사용하면 편할겁니다.
: 원형큐의 어느 정도 충분한 크기의 메모리를 할당받아서(통신 속도와 기타 등등에 따라서
: 크기는 달라지겠죠)
: send와 receive용으로 각각 buffer를 만드세요.
: 그리고 버퍼의 동작은 receive buffer의 경우에
: |-----------------------------------------------------------------------|
: ^ ^
: | |
: processing(A) write(B)
:
: 이 경우에 rs232c를 통해서 data가 들어오면 B점에 저장을 하고
: 계속 pointer를 증가시킵니다. 그리고 맨 끝에 오면 다시 맨 처음으로 가면 됩니다.
: 그리고 프로그램 내부에서 처리를 할 때에는 A점에서부터 프로세싱을 합니다.
: 여기에서 A를 증가시켜서 B와 같아지면 더이상 처리할 데이터가 없는것이고,
: B를 증가시켜 A와 같아지면 buffer가 꽉차서 더 이상 데이터를
: 받을 수 없다는 것입니다.
:
: 참고하세요.
:
: 박세용(sharejoy@computer.org)
:
|