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
[42183] 첨부한 파일 처럼 컴포트를 설정 하려면....
수빈 [sbin9] 1332 읽음    2005-10-18 14:17
c++빌더.zip 735.4KB 빌더 예제.. 이것과 똑같은 기능을 할수 있는 설정
일단 상황 설명부터 말씀드리자면..
하나의 예제 프로그램 소스가 있습니다..
장비를 써서 컴포트 통신을 하는 소스인데.. 시리얼 통신을 위해서 cport 컴퍼넌트를 사용했다고 합니다.
헌데 cport 컴퍼넌트 없이 api함수로  설정하여 똑같은 기능을 하고 싶습니다.
덧붙여 말씀 드리자면.. cport컴포넌트를 설치하지? 라는 의문을 갖으실수 있지만..
원론적으로 cport 컴포넌트 설치에서 자꾸 에러가 발생합니다..
조회해서 따라할만큼  했지만.. 설치 실패...
질문에 답변이 있었으면 합니다.
아래는 comport 설정 예문입니다.. 추가할부분과 설정할 부분을 고쳐 주시면 감사하겠습니다.

데이터 검출이나 이상유무 가 문제가 아니라.. 포트로 데이터값이 날라오는것만 확인 되면 됩니다..
//=======================================================================================
HANDLE hFile;
DCB    dcb;
DWORD dwWritten;
DWORD nBytesRead;
OVERLAPPED ol;
bool bResult;
COMMTIMEOUTS to;
COMMPROP     cp;

char inBuffer;
int  cnt,idx,flag,i;
char BUF3[2],BUF2[256]={""},BUF[256]={""};
char LRC = 0x00,ch = 0x00;

        //======================================================================
        // 핸들 오픈 하기.
        //======================================================================
        hFile = CreateFile ("COM1",
                            GENERIC_READ | GENERIC_WRITE,
                            0,
                            NULL,
                            OPEN_EXISTING,
                            FILE_FLAG_OVERLAPPED,
                            NULL);
        dcb.DCBlength = sizeof (DCB);
        GetCommState (hFile,&dcb);
        dcb.BaudRate =CBR_9600;
        dcb.ByteSize = 8;
        dcb.Parity = NOPARITY;
        dcb.StopBits = ONESTOPBIT;
        dcb.fBinary = TRUE;
        dcb.fParity = TRUE;

        if(!SetCommState(hFile, &dcb ))
        {
            CloseHandle(hFile);
            MSG->Caption = "단말기를 체크하시고 다시 시작하십시요.";
            return;
        }
        //======================================================================
        // 컴포트를 지연 시간 등을 설정하는 부분
        //======================================================================
        cp.wPacketLength = sizeof(COMMPROP);
        GetCommProperties(hFile,&cp);
        if(!(cp.dwProvCapabilities & PCF_INTTIMEOUTS)) return;

        memset(&to , 0 ,sizeof(to));
        //to.ReadTotalTimeoutConstant = 20000;
        //to.ReadIntervalTimeout      = 20000;

        SetCommTimeouts(hFile,&to);
        SetCommState(hFile,&dcb);

+ -

관련 글 리스트
42183 첨부한 파일 처럼 컴포트를 설정 하려면.... 수빈 1332 2005/10/18
42184     Re:첨부한 파일 처럼 컴포트를 설정 하려면.... 조준회 1199 2005/10/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.