|
한수동 님이 쓰신 글 :
: 제가 보내는 버퍼에 데이타를 저장하고 싶다면 어떻게 해야하는지...
:
: 보통 받는 버퍼는 자동으로 해주는 듯 한데(OnTriggerAvail 에서 Count 함수변수 부분)
: 나가는 버퍼는 우째 되는지 원리를 모르겠네요;
받는 데이터는 외부에서 들어오는 데이터가~~ 님이 짜신 프로그램이 데이터를 사용 하기 전까지~~
일단 받아 두는 역활이구요~
반대로 보내는 버퍼는 내가 보낼려고 하는 데이터를 임시로 보관하는 것입니다.
즉 내가 보내라고 해도~ 윈도우가 바뻐서 못 보내준다면 누군가 임시로 가지고 있어줘야
윈도우가 않바쁠때 그곳에서 빼다가 보내주져
만약 이런형태로 중간에 버퍼가 없다면 ... 사용자 프로그램은 윈도우가 않바쁠때까지 기다렸다가
보내야 할텐데 그럼 프로그램이 너무 복잡해 지지 않겠습니까 ...
또 한가지 보내는 속도가 1200 처럼 낮은속도라면 ... 데이터를 1200 속도에 맞춰서 서서히 보내야 할텐데...
그 빠른 컴퓨터로 다른일은 않하고 데이터 보내는데 시간을 허비 할수는 없으니~~
일단 한바이트 보내라 해놓고~~ 윈도우는 딴일을 할텐데 ...
그일이~ 좀 클일이면 .. 다음 바이트는 또 윈도우가 나에게 오길 기다려야 하고~~
쩝 그럼~~ 프로그램이~~ 영 윈도우 기다리다가 볼일 다보져~~ 그래서~~ 중간에 버퍼를 두고~~
그곳에~ 보낼 데이터를 써놓으면 윈도우가 가져다가 실제로 내보낸다고 생각 하면 됩니다 ...
즉 보내는 버퍼에 데이터를 저장 하는것은
AdpComPort->PutBlock(Data, 10);
과 같은 명령을 실행하면 이것은 하드웨어적으로 시리얼로 실제데이타가 나가는 것이 아니라
보내는 버퍼에 저장이 되어 지는 것입니다 ...
이해 가시는지요 ^^ 그럼
|