C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[20490] CPort 관련 질문입니다.
kabaliero [] 1044 읽음    2002-07-29 18:02
밑에 질문 올렸었는데요.. 너무 길어질것 같아서 새로 올립니다. 양해 부탁드릴께요.

아래 빈센트님이 답변을 주셨는데요.. 흠.. 우선 하드웨어에서는.. 동적 패킷 구조를 가지고 있습니다.

마지막 바이트가 들어오고 일정시간동안 다음 바이트가 들어오지 않으면 거기까지를 패킷으로 간주하는것이지요..

그렇기때문에, ComPort->Read(buf, 12) 이런식으로 읽을 갯수를 정의하기가 곤란합니다.

OnRxChar 이벤트에서 넘어오는 Count 인자로 보면 되지 않느냐..하는분도 없지 않으실텐데..

예를들어 12바이트를 보낸다면.. 8 + 4 이런식으로 끊어져서 올라옵니다. OnRxChar 이벤트를 막고 따로 버튼을 하나 만들어서 InputCount()를 확인하면 12읽히고요..

제가 예전에 API와 Thread를 이용해서 짠 프로그램을 보면,

우선 Timeout 구조체에서 ReadInterval만 15msec 정도를 주고 나머지 인자는 모두 0으로 세팅해줍니다.

그리고 Thread에서는 ReadFile 함수에서 계속 걸려있다가 15msec동안 다른 receive가 없으면 리턴을 해주지요.

그렇게 되면 리턴되는 배열과, 받은 Byte 수를 알 수가 있습니다. 이것을 가지고 처리를 해주면 되고요..

하지만.. CPort에서는 ReadInterval로 발생하는 이벤트가 없는것 같습니다.

OnRxChar는 ReadInterval과 관련없는 이벤트로 알고있는데.. 제가 잘못 알고 있는것인지요?

오로지 ReadInterval로만 발생할 수 있는 이벤트는 CPort 컴포넌트에 없는것인지요..

답변 부탁드리겠습니다.

+ -

관련 글 리스트
20490 CPort 관련 질문입니다. kabaliero 1044 2002/07/29
20492     Re:CPort 관련 질문입니다. 빈센트 1094 2002/07/29
20529         Re:Re:CPort 관련 질문입니다. kabaliero 1278 2002/07/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.