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
[38772] WARSHIP 님 포트확인 문제 해결했습니다.
보거스 [kjlee1] 885 읽음    2005-01-17 11:15
HANDLE      m_hPort[20];
BOOL ccomm32::opencomm(int nport, DWORD dwbrate)
{
       COMMTIMEOUTS commtimeouts;
       DCB  dcb;
       char    port[5];

       wsprintf(port, "COM%d", nport);

       m_hPort[nport-1] = CreateFile(port, GENERIC_READ | GENERIC_WRITE, 0, NULL,
                                                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
... 중략
}

이런식으로 Open 하구요.

데이타 읽는 함수에 인자로 port를 추가했습니다.
DWORD ccomm32::readcomm(BYTE *by, int nlen, int n_port)
{
       if(getconnected())
       {
               COMSTAT    comstat;
               DWORD    dwerrflgs, dwbytesread;
               ClearCommError(m_hPort[n_port], &dwerrflgs, &comstat);
               dwbytesread = min(nlen, RXQUEUE);
                if(dwbytesread > 0)
                {
                       ReadFile(m_hPort[n_port], by, dwbytesread, &dwbytesread, NULL);
                       return dwbytesread;
                }
       }
    return false;
}
//---------------------------------------------------------------------------


readcomm(BYTE *by, int nlen, int n_port) 함수 호출은 아래와 같이 했습니다.
(Timer로 주기적으로 호출합니다.)

void CPoll::Rev_Chk()
{
       // RXQUEUE 은 define으로 1024로 잡았습니다.
       DWORD dw_Len;
       BYTE    by[RXQUEUE];
       String str;

       for(int i = 0; i < 20; i++)
       {
              if( (dw_Len = readcomm(by, RXQUEUE, i)) != 0)
              {     
                     str = "포트 " + IntToStr(i+1) + " 에서 데이타 읽음";        
                     ShowMessage(str);
              }
    }
}
PC에서 COM1,COM2를 번갈아 시험해봤는데 잘 들어옵니다.

WARSHIP 님이 올려주셨던 글들을 보고 해결했습니다.
다시 한번 감사드립니다.

+ -

관련 글 리스트
38772 WARSHIP 님 포트확인 문제 해결했습니다. 보거스 885 2005/01/17
38773     Re:WARSHIP 님 포트확인 문제 해결했습니다. WARSHIP 757 2005/01/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.