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
[52108] COMMTIMEOUTS에서 정의한 값을 부모프로세서에서 사용하려면?
linuxman [] 1626 읽음    2008-01-29 17:01
안녕하세요..

시리얼 통신에서... 타임아웃 구조체 있잔하요?

COMMTIMEOUTS timeouts;
    timeouts.ReadIntervalTimeout = 0xFFFFFFFF;
    timeouts.ReadTotalTimeoutMultiplier = 0;
    timeouts.ReadTotalTimeoutConstant = 0;
    timeouts.WriteTotalTimeoutMultiplier = 1;
    timeouts.WriteTotalTimeoutConstant = 0;
    SetCommTimeouts(hCom, &timeouts);

RS232C time out 구조체에서...ReadIntervalTimeout =0xffffffff 를 주는건 사용안한다는 의미로 봐도 되나요?
(이렇게 큰 숫자를 주는건 ... )

TotalTimeoutMultiplier 와 TotalTimeoutConstant 의 의미가 각각 무엇인가요?
(두개를 곱해서 0 이면 사용안하는 의미라고 하는데 )

제가 여기서 위에서 ReadIntervalTimeout= 500  ( 500 밀리세컨드 ) 주고. (들어오는 두개의 문자사이 시간을 500 으로 설정)

보통 시리얼 쓰레드 안에서
    while(!Terminated)
    {
       
        /*   wait read until a data arrive event    */
        WaitCommEvent(myRs232c->hmyPort, &dwEventMask, &myRs232c->evnRead);
                    if(dwEventMask & EV_RXCHAR)
        {
                                   SenddMessage(myRs232c->hmyWnd, UM_EVN_RXCHAR, CommStatus.cbInQue, 0);
                              }
                 }
그렇게 되면...UM_EVN_RXCHAR 를 받은 부모프로그램에서는  ReadComm ( buff , 1024 ) 하는데....
일반적으로 받는 부모 입장에서...루프를 돌면서... 아래처럼 많이 하는데...
while ( 1)
{
    starttime ;
    ReadCom ( buff , 1 )
    endtime;
   if ( endtime -start > 500 ) ShowMessage ( "timeout " );
}

저는 위의 쓰레드에서 정의한...(COMMTIMEOUTS ) 대로 , 쓰레드에서 발생한 timeout을 부모 프로세스 입장에서
어떻게 알아내는지 궁금합니다.. ( ReadComm 할때... 쓰레드에서 정의한 time out 이 발생했는지 안했는지 알수 있는 방법이 있나요?)

수고하세요.

+ -

관련 글 리스트
52108 COMMTIMEOUTS에서 정의한 값을 부모프로세서에서 사용하려면? linuxman 1626 2008/01/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.