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
[20532] Re:Re:Re:CPort 관련 질문입니다.
빈센트 [kaisar] 2657 읽음    2002-07-30 15:26

라이브러리 루트에 readme.txt를 발췌하여 올립니다.
대충 보자면 OnRxBuf이벤트에서 그 메시지는 델파이나 씨빌더 IDE의
버그라고 하네요..
방법은 더블 클릭해서 이벤트코드를 만들지 말고 직접 코딩을 하라고 하네요..
그럼 다시 건투를 빕니다.

9. Known problems and issues
-----------------------------------------------------------------------------
  1.) OnRxBuf event handler problem in Delphi IDE

      If user double clicks on OnRxBuf event in Delphi IDE, message pops up
      saying: "Property and Method ComPort1RxBuf are not compatible".
      This is a Delphi IDE bug, since it can't handle untyped parameters
      like Buffer parameter of OnRxBuf event.

      Solution: Application has to assign OnRxBuf handler manually in code.   

kabaliero 님이 쓰신 글 :
: 빈센트님..항상 감사합니다..^^
:
: 마지막 질문을 하나만 드릴께요..
:
: ComPort 이벤트에 보면.. OnRxBuf, OnRxChar 두가지가 있는데요..
:
: OnRxChar의 경우에는.. 이벤트를 작성할 수가 있습니다..
:
: 하지만.. OnRxBuf의 경우에는. 더블클릭했을때 말씀드렸던것 처럼..
:
:  " Property and method ComPort1RxBuf are not compatible "
:
: 이라고 에러가 뜹니다. 어떻게 해야 저 이벤트를 사용할 수 있을까요..?
:
:
: 빈센트 님이 쓰신 글 :
: :
: : 정말 고생이 많으시군요..
: :
: : 동적인 패킷을 가지고 있다면요..
: :
: : 프로토콜을 마련하세요..
: :
: : 예를 들자면 패킷의 처음은 STX(0x02)로 시작하고 다음 은 커맨드문자..
: :
: : 커맨드에 따라서 12바이트인지 아니면 16바이트인지.. 아니면 또다른 길이인지..
: :
: : 판단하면 되겠지요..
: :
: : 자,,
: :
: : 한 바이트를 읽고 , STX이면 다음 한바이트를 읽고 커맨드에 따라서
: :
: : 다음 12바이트짜리 패킷이라면 이미 2바이트를 읽었으니까 Read(&buf,10)하면
: :
: : 되겠죠..
: :
: : 직장인 같은데 사수나 도움 받을 사람이 안계신 것 같군요..^^;
: :
: : 건투를 빕니다.
: :
: : kabaliero 님이 쓰신 글 :
: : : 밑에 질문 올렸었는데요.. 너무 길어질것 같아서 새로 올립니다. 양해 부탁드릴께요.
: : :
: : : 아래 빈센트님이 답변을 주셨는데요.. 흠.. 우선 하드웨어에서는.. 동적 패킷 구조를 가지고 있습니다.
: : :
: : : 마지막 바이트가 들어오고 일정시간동안 다음 바이트가 들어오지 않으면 거기까지를 패킷으로 간주하는것이지요..
: : :
: : : 그렇기때문에, 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 컴포넌트에 없는것인지요..
: : :
: : : 답변 부탁드리겠습니다.

+ -

관련 글 리스트
30261             Re:Re:Re:CPort 관련 질문입니다. 프로미 1151 2002/07/30
20532             Re:Re:Re:CPort 관련 질문입니다. 빈센트 2657 2002/07/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.