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
[46537] Comport 통신에서 수신 데이터 처리를..
김태진 [] 1144 읽음    2006-09-14 14:50
안녕하세요
컴포트 모듈로 시리얼 통신을 하는데..
데이터 처리에 어려움이 있어서 질문 좀 올립니다..

데이터는 프로토콜 형식 없이..

start, 100,200,300,400,500,600,700,800,900,1000,end \r\n

start 와 10개의 콤마보 구분되는 숫자 데이터, end \r\n 으로 계속 받습니다.

그래서 아래와 같이 컴포트로 데이터를 수신했습니다.
----------------------------------------------------------------------
void __fastcall TmainForm::ComPort1RxChar(TObject *Sender, int Count)
{

    AnsiString Str;
    ComPort1->ReadStr(Str, Count);

    ComPort1->ClearBuffer(true, true);
    readStr += Str.c_str();  // 10초에 한번씩 데이터를 받음
    Edit1->Text= readStr;
}
-------------------------------------------------------------------
그랬더니.. 데이터가 깨끗하게 오지가 않네요..

아.. 컴퓨터 2대로 부터 데이터를 받고 있어서 인지..

start, 100,200,300,400,500,600,700,800,900,1000,end start, 100,200,300
하는 식으로 데이터가 뒤에더 딸려 오거나..

400,500,600,700,end 하는 식으로
앞에 데이터는 없구 뒤에 데이터만 오는 식으로 됩니다.


이걸 확실히 구분지어진 데이터로 받을순 없을까요?
이렇게 수신 받은 데이터를
---------------------------------------------------------------------------
void __fastcall TMyReadThread::UpdateDisplayRead(void)
{
    mainForm->ProcessRx1();
}
__fastcall TMyReadThread::TMyReadThread(void) : TThread(TRUE)
{
    FreeOnTerminate = TRUE;   // 쓰레드가 끝났음을 나타냄
    Resume();
}
void __fastcall TMyReadThread::Execute(void)
{

    while(!Terminated)
    {
        strcpy(mainForm->readData,mainForm->readStr.c_str());
        Synchronize(UpdateDisplayRead);
        mainForm->readStr="";
        Sleep(500);
    }
}
---------------------------------------------------------------------------

쓰레드에서 처리하기때문에..
저렇게 겹쳐버리면.. 수신한 데이터를 처리하기가 애매하더라구요..
그냥 버리기도 그렇기때문입니다.

다른 방법이라도 좋으니까..
넘어 오는 데이터를 모두 처리할수 있는 방법 좀 알려주십시오.

그럼 좋은 하루 보내세요~^^

+ -

관련 글 리스트
46537 Comport 통신에서 수신 데이터 처리를.. 김태진 1144 2006/09/14
46569     Re:Comport 통신에서 수신 데이터 처리를.. 라스코니 1236 2006/09/18
46565     Re:Comport 통신에서 수신 데이터 처리를.. 우리 1217 2006/09/18
46582         Re:Re:Comport 통신에서 수신 데이터 처리를.. 김태진 932 2006/09/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.