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
[22588] [질문] 시리얼 통신에서 통신량이 많아서 PC의 시스템버퍼를 클리어 하는 방법
safetnt [] 1044 읽음    2002-11-13 09:18
시리얼 통신으로 통신을 하고 있는데 컴퓨터에서 통신으로 받은 데이터를

처리해서 화면에 뿌려주고 있는데 데이터처리 속도에 비해 통신으로 들어오는

데이터가 너무 많은 것 같아서 어느정도의 시간이 지난 후에 버퍼가 모두 차서

컴터가 멈추는 현상이 일어나거든여... 문제는 데이터 보내는 속도를 줄이면 되지

않겠냐? 하시겠지만 지금 현재는 그렇게 할 수는 없다는게 문제입니다.

//---------------------------------------------------------------------
    if(Frame_count >=200)
    {

        for(i=0;i<2;i++)
        {
            if(Comm_Handle[i]!=NULL)
                PurgeComm(Comm_Handle[i],PURGE_RXCLEAR|PURGE_TXCLEAR);

            memset(Auto_In_Buffer[i],NULL,sizeof(Auto_In_Buffer[i]));
            memset(Auto_Out_Buffer[i],NULL,sizeof(Auto_Out_Buffer[i]));
        }

        Frame_count=0;

    }
//----------------------------------------------------------------------

현재는 이렇게 들어오는 프레임을 카운트해서 200개(약13K)정도 이상 되면 버퍼에

어느 정도 데이터가 쌓여있는지 모르는 상태에서 걍

                PurgeComm(Comm_Handle[i],PURGE_RXCLEAR|PURGE_TXCLEAR);

요 명령을 써서 Tx, Rx를 모두 클리어하고 있는데 실제 위에 있는 함수도 어케 동작

하는지 모름다... 걍 쓰는건데요...

시스템 버퍼를 클리어하는 방법하고 제 프로그램이 더욱 안전하게 작동할 수 있는

방법을 제시해 주시면 감사하겠습니다.

장문의 글을 읽어주셔서 감사합니다.

모두 즐건 하루되세요....

+ -

관련 글 리스트
22588 [질문] 시리얼 통신에서 통신량이 많아서 PC의 시스템버퍼를 클리어 하는 방법 safetnt 1044 2002/11/13
22589     Re:[질문] 시리얼 통신에서 통신량이 많아서 PC의 시스템버퍼를 클리어 하는 방법 개박살.U&I 891 2002/11/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.