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
[42725] Re:CPort 이용해서 시리얼 통신을 하고 있습니다..
B [cyberpd] 1183 읽음    2005-11-30 09:31
빌더 초보 님이 쓰신 글 :
: CPort 이용해서 시리얼 통신을 하고 있습니다..
:
: 데이터를 한번에 읽지 못하고 두번에 나누어서 읽고 있습니다..
: (데이터가 길어서 8Byte 씩 읽고 있습니다.)
: STX가 들어 오면 버퍼에 저장 하기 시작 합니다.
: ETX가 올때 까지 버퍼에 저장합니다.
: ETX가 오면 DB에 저장을 하고 있습니다.
:
: 문제는,
: 처음 STX데이터는 들어 왔지만 통신 오류로 인해서 ETX가 오지 않는 경우
: 일정 시간이 지나면 ETX가 오지 않아도 버퍼를 클리어 하고 새로 통신을 하고 싶은데..
: 계속 기다리는 문제로 인해 H/W장비가 다운되는 현상이 발생 합니다.
:
: 제~~~~발  답변 부탁드립니다.

계속 기다린다는것이, 아마도 수신 read 함수에서 time out 설정이 무한대 또는 긴 시간인것 같네요.

프로토콜에 STX,ETX로 패킷의 시작과 끝이 구분이 되기 때문에, 포트로부터 8바이트씩 읽을 필요는 없습니다.
CPort를 사용해 보지는 않았지만, read time out 설정이 있을듯 한데, 대기 시간을 0 으로해서,
1byte씩 read 하여 수신 버퍼에 저장하면서 처리하면 될겁니다.

+ -

관련 글 리스트
42721 CPort 이용해서 시리얼 통신을 하고 있습니다.. 빌더 초보 847 2005/11/29
42725     Re:CPort 이용해서 시리얼 통신을 하고 있습니다.. B 1183 2005/11/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.