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
[60867] USB to RS232를 이용하여 CPort 사용시 Error
뷰파인더 [k111111] 3002 읽음    2010-04-22 11:43
안녕하세요..

게시글을 검색해서 답을 얻으려고 했더니 잘 안되네요. ㅠ_ㅠ
염치불구하고 문의 드립니다.

문제의 사항은 CPort로 사용하다가 통신 연결이 끊어지면 Error가 발생하는 것입니다.

현재 프로그램은 외부장치와 연결하여 노트북에서 상태를 모니터 하는데요.
프로그램이 해당 USB to RS232 IC를 인식해서 연결되어 있으면 자동으로 Comport를 열어주고 연결되어 있지 않으면 comport를 닫아두고 대기를 합니다.

여기까지는 잘되네요..

하지만, 예외의 경우를 생각하다가 comport가 연결되어 사용중이다가 사용자가 usb cable을 뽑아서 통신이 끊긴다면 Comport가 열려있는 상태라서 error가 날것 같았습니다.
test해보니 역시나 error를 토해냅니다. ㅠ_ㅠ

error는 "PurgeComm function failed (win error code: 22)" 입니다.

이 메세지를 나오지 않게 하거나, 메세지를 출력하고 comport를 닫고 싶습니다.
안된다면 메세지가 뜨기전에 프로그램을 종료하고 싶은데요.
방법이 없네요.

현재는 아래와 같이 했는데.. 역시 안되네요.. ㅠ_ㅠ

void __fastcall TENB300::OnMessages(Messages::TMessage &Message)
{
    if(ComPort->Connected)
    {
        ComPort->Connected = false;
    }
    unsigned int i = Open(i, &m_hUSBDevice);
    if (i == SUCCESS)
    {
        Close(m_hUSBDevice);
    }
    else
    {
        ComPort->Close();
        Reset(m_hUSBDevice);
        Close(m_hUSBDevice);
    }
}

많은 관심 바랍니다.
즐거운 하루 되세요.

+ -

관련 글 리스트
60867 USB to RS232를 이용하여 CPort 사용시 Error 뷰파인더 3002 2010/04/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.