|
Read, Write 버퍼 크기는 정해진건 아닙니다.
SetupComm()로 Read, Write Queue Size를 정할 수 있습니다.
여기서 말하는 Queue는 드라이버단에서 처리하는 루틴에서 사용되는 버퍼를 말하는 것으로 상위에서는 몰라도 상관 없습니다.
다만 케이블을 통해 들어오고 나가는 한번치의 최대크기를 지정했다고 보시면 됩니다.
만약 크기를 10으로 잡아놓고 20 byte를 보냈다면 10 byte는 날라가겠죠.
또한가지 4096 byte를 잡아놓고 1000 byte를 보냈다고 항상 1000 byte가 들어오는것은 아닙니다. 상황에 따라 2번 또는 그이상의 횟수로 나뉘어 들어올 수도 있습니다.
그래서 시리얼 프로토콜을 만들경우 STX, ETX 같은것을 앞위로 두어 패킷의 시작과 끝을 구분한답니다. 그래야 나뉘어 들어오더라도 ETX가 올때까지 패킷을 모을 수 있지요.
이런것까지 알려드릴 필요가 없을지도 모르지만 알고 계시는것이 좋습니다.
일반적으로 시리얼 통신 관련 프로그램을 만들때는 4096크기를 사용합니다만 개인적으로 적은양의 데이터를 주고 받는 간단한 프로그램을 만드시는 거라면 줄여줘도 상관없습니다.
그렇더라도 10 byte 보낸다하여 10 byte로 잡아주면 문제가 생길 수 있습니다.
Baud Rate가 높고 데이터를 보내는 주기가 짧다면 2번치 이상이 붙어들어올 수도 있기 때문이죠.
따라서 적당히 여유를 두면 좋겠지요.
[질문2]에 대한것은 그상황만 보아서는 답변을 드리기 힘드네요.
|