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
[47855] Re:Re:[추가질문] 원하는 값만 캐치하는 법 (해당 소스 첨부)
주바라기 발루 [] 883 읽음    2007-01-23 19:58
디버그를 해보니까  데이터를 두번에 걸쳐서 가져오더라구요.
DWORD ReadThread (LPDWORD lpdwParam1)
{
.............
}
이 함수부분을 두번에 걸쳐서 데이터를 읽어오는거죠. 첫번에  [0]~[8]번까지
그리고 두번째에 나머지 를 가져옵니다.  왜그런지는 모르겠네요. ㅠㅠ
한번에 다 받아오게 하는 법은 없나여? 첫번에 data_Buff 값이 8 이고
두번째에  data_Buff 값이 2더라구요.
그래서 두번째때 ETX가 붙죠. 
왜 나누어서 오는지 알수가없네요.
//------------시리얼 수신쪽 ----------------------------------------
DWORD ReadThread (LPDWORD lpdwParam1)
{
    char datain[BUFSIZ];
    DWORD data_Buff;

    if (!(cp.dwProvCapabilities & PCF_INTTIMEOUTS))
        return 1L;

    memset (&to, 0, sizeof(to));
    to.ReadIntervalTimeout = MAXDWORD;
    SetCommTimeouts (hComm, &to);
              
    while (bReading) {                
        if (!ReadFile(hComm, inbuff, BUFSIZ, &data_Buff, NULL))
                                      {
            locProcessCommError(GetLastError ());
              }
        else
                                     {
            if(data_Buff)
                          Form1->ProcessBytes(inbuff, data_Buff);
             }
                     }
    PurgeComm(hComm, PURGE_RXCLEAR|PURGE_TXCLEAR);
    return 0L;
}
//------------------------------------------------------------
void __fastcall TForm1::RS232_Read( char *datain, int  data_Buff)
{
    int     i;
    AnsiString strTemp;
    BYTE data;

   for( i=0; i<data_Buff; i++)
        {

              if(i==3)
              {
                data=0x0f & idatain[i];
                strTemp = Format("%2x", ARRAYOFCONST((data)));
                Memo1->Text=Memo1->Text+(strTemp);
              }

              if(i==4)
               {
                data=idatain[i];
                strTemp = Format("%.2x", ARRAYOFCONST((data)));
                Memo1->Text=Memo1->Text+(strTemp);
              }
    }
}

+ -

관련 글 리스트
47851 [추가질문] 원하는 값만 캐치하는 법 (해당 소스 첨부) 주바라기 발루 853 2007/01/23
47853     Re:[추가질문] 원하는 값만 캐치하는 법 (해당 소스 첨부) 김시환 870 2007/01/23
47855         Re:Re:[추가질문] 원하는 값만 캐치하는 법 (해당 소스 첨부) 주바라기 발루 883 2007/01/23
47852     Re:[추가질문] 원하는 값만 캐치하는 법 (해당 소스 첨부) 이정일 851 2007/01/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.