|
안녕하세요..
게시글을 검색해서 답을 얻으려고 했더니 잘 안되네요. ㅠ_ㅠ
염치불구하고 문의 드립니다.
문제의 사항은 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);
}
}
많은 관심 바랍니다.
즐거운 하루 되세요.
|