안녕하세요.
또 모르는게 있어서 글을 적습니다.
영국 FTDI사에서 나온 칩이 적용된 제품을 사용하는데, 이 칩은 USB장치를 가상의 시리얼포트로 만들어줍니다. 핸드세이크까지 칩에서 해주고요, 국내관련사이트는 http://www.core.co.kr 입니다.
문제는 Cport로 시리얼 통신환경을 구축해서 이 제품을 사용하는데 USB의 특성상 언제라도 뽑았다가
다시 꼽을 수 있다는 것입니다.
그러면 가상시리얼포트가 없어졌다가 동일한 포트넘버로 다시 생기는데 Cport에서는 이때 이후로는 포트에 Write error를 내거나 Clear error를 냅니다. error 넘버는 주로 5번, 2번, 6번 등입니다.
이걸 잡거나 막을 방법이 없을까요?? 위 사이트에서 답변은 핸들을 닫아야 한다는 것인데, Cport에서는 USB가 뽑힌 상황에서 포트를 닫으면 역시 에러...핸들을 CloseHandle을 이용해 닫아도 현상은 비슷합니다.
Cport의 onError이벤트 함수는 아무런 이벤트로 발생되지않고 에러메시지 창만 열심히? 뜹니다.
CTS Change이벤트에서는 CTS low상태로 검출되고 이후는 위에 말씀드린대로 에러메세지 창만 뜹니다.
문제는 안준호님이 만든 ComAnalyzer란 프로그램에서는 USB를 뽑았다 꼽아도 포트를 새로 열기만 하면 다시 통신이 되는데,
Cport로 해볼려니 포트 닫는것과 새로 여는것이 다 안됩니다.
의견이나 도움을 기다립니다.
감사드립니다.
|