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
[56012] Re:cport에서 데이타 프레임이 누락되는 현상이 발생하는것 같습니다..
보리 [rhythmax] 1491 읽음    2009-02-05 09:45
저도 cPort 3.0으로 장비에서 날아오는 문자열을 수신하는 프로그램을 만들었었는데요.

RxChar 이벤트를 이용할때 몇가지 문제가 있는데요.
RxChar 이벤트가 데이터 수신이 완료된 시점에 발생하는게 아니라 데이터 수신 시작시점에 발생하는듯 하더군요.

이벤트 발생시 전달된 Count가 버퍼에 수신된 데이터의 Count와 달라서 30밀리정도 지연을 주고 COunt를 다시 읽었었죠.

그래도 중간에 한 두 바이트씩 날아가는 경우가 생기긴 하는데요... 당시엔 데이터가 중요한게 아니라 더 이상 진행하지 않았었습니다.

비슷한 경우라면 이벤트 내에 몇십밀리초 정도의 디레이를 주고 Count를 다시 읽어 보시면 어떨까요?

linuxman 님이 쓰신 글 :
: CPORt 2.64를 사용하고 있습니다.
:
: 상대쪽 장비에서 약 250~300밀리초 단위로 약 100 byte정도의 완전한 프레임(임의로 정의한 Soh ~ EOT 까지) 을  계속 writing 하고 있습니다.
: ComPort1RxChar 에서 읽어 보면 frame이 통째로 빠지는 느낌이 듭니다.
: 중간에 rxbuffer 에서 하나의 프레임이 완전히 사라지는 느낌입니다. ( 즉 100 byte의 프레임을 100번 보내면, 80번정도는 못 받는 그런현상 )
: 이런 현상이  왜 일어나나요?
:
: (그런데..시간을 약 300밀리초 ~ 500밀리초로 writing 하면 100번 보내면, 100번 수신합니다)
:
: rx,tx buffer는 4096으로 설정하였습니다.
:
: ComPort1 ==>
:   BaudRate = br19200
:   Port = 'COM1'
:   Parity.Bits = prNone
:   StopBits = sbOneStopBits
:   DataBits = dbEight
:   Events = [evRxChar, evTxEmpty, evRxFlag, evRing, evBreak, evCTS, evDSR, evError, evRLSD, evRx80Full]
:   Buffer.InputSize = 4096
:   Buffer.OutputSize = 4096
:   FlowControl.OutCTSFlow = False
:   FlowControl.OutDSRFlow = False
:   FlowControl.ControlDTR = dtrDisable
:   FlowControl.ControlRTS = rtsDisable
:   FlowControl.XonXoffOut = False
:   FlowControl.XonXoffIn = False
:   OnRxChar = ComPort1RxChar

:
: 그런데..CPort의 void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count) ..
: {
:     BYTE recvBuf[512];
:     int iLen,i;
:  
:     memset(recvBuf,'\0',sizeof(recvBuf));
:     iLen=ComPort1->Read(recvBuf,Count);
:
: }

+ -

관련 글 리스트
56000 cport에서 데이타 프레임이 누락되는 현상이 발생하는것 같습니다.. linuxman 1287 2009/02/04
56077     Read한다음에 데이타 처리하는 부분도 올려주시겠어요? 조필형 1273 2009/02/09
56012     Re:cport에서 데이타 프레임이 누락되는 현상이 발생하는것 같습니다.. 보리 1491 2009/02/05
56001     Re:cport에서 데이타 프레임이 누락되는 현상이 발생하는것 같습니다.. evergreen 1355 2009/02/04
56003         Re:Re:cport에서 데이타 프레임이 누락되는 현상이 발생하는것 같습니다.. linuxman 1461 2009/02/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.