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
[43411] Re:Cport3.0 문의..
권기식.with☆ [orion96] 1110 읽음    2006-01-23 16:19
아는대로만 답변을 드리겠습니다.

김성준 님이 쓰신 글 :
: 안녕하세요
: Cport3.0을 사용해서 장비와 시리얼 통신하는 프로그램을 짜고 있는데요
: 장비에서 수많은 데이터가 마구 쏟아져 들어옵니다.
: 어떤 정해진 값이 아니면 오류 메세지를 띄우고 포트를 닫으려 하는데요.
: 계속 수신되는 값이 있으니 문제가 생기더군요.
:
: 글을 검색해 보니 포트를 닫기전에 데이터 수신 이벤트를 해제하고 버퍼를 클리어, 포트 닫기를 해야 할듯한데요
:
: 제가 빌더로 프로그램을 처음 짜는지라.. 수신 이벤트 해제하는법이랑 버퍼 클리어 하는법을 모르겠어요..
:
: 1. 수신 이벤트 해제 하는법..ComPort1->Events = []; 이거 오류 나더군요 ;;
=> ComPort1->Events.Clear() 하면 될 것 같네요.
혹은 ComPort1->OnRxChar = NULL; 하면 될 듯 싶네요.

: 2. 버퍼 클리어하는법.
=> ComPort1->ClearBuffer(true, true) 하면 입출력 버퍼를 모두 클리어 시킵니다. 함수 인자 중 앞쪽이 입력, 뒤가 출력을 클리어 시킵니다.

: 3. ComPort1->Connected = true; 와 ComPort1->Open();의 차이점은 뭔가요.
=> 동일합니다.

: 4. 수신되는 데이터를 딱 한바이트씩 검사하기 위해 한바이트가 들어올때마다 이벤트를 발생시키려면 뭘 만져줘야 하는지.. ComPort1RxChar 이놈은 타임아웃안에 들어온 데이터를 모두 읽는거 같던데요..
=> RxChar 이벤트를 이용하시면 됩니다. 그리고 데이터를 버퍼에서 가져올 때 한 바이트씩 가져오시면 됩니다.

:
: 읽어주셔서 감사합니다.

+ -

관련 글 리스트
43393 Cport3.0 문의.. 김성준 938 2006/01/21
43411     Re:Cport3.0 문의.. 권기식.with☆ 1110 2006/01/23
43414         넵 감사합니다. 김성준 849 2006/01/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.