|
음....
제대로 serial port를 닫지 않아서 그런것일 겁니다.
그런 현상이 날때 다른 프로그램으로 해당 port open해보세요
그러면 ie_OPen - device already open 이라고 에러메세지가 날겁니다.
잘안되면 Apro Comport를 delete했다가 다시 생성해서 해보세요
아래는 제가 serialport가 사용중인지 아닌지 체크하는 함수로 쓰던것입니다.
bool __fastcall OpenCheckComport(int nPort)
{
char szPort[10];
DWORD dwError;
COMMTIMEOUTS CommTimeOuts;
wsprintf(szPort, "COM%d", nPort);
HANDLE hCommPort = CreateFile(szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );
if(hCommPort == INVALID_HANDLE_VALUE)//Port번호에 문제가 있거나 사용중인경우등..
{
return false;
}
else
{
CloseHandle(hCommPort);
return true;
}
}
//---------------------------------------------------------------------------
그럼..
무심코 님이 쓰신 글 :
: 시리얼 com port(가상) 으로 20개 정도 해서 통신을 하고 있습니다!
: APRO 컴포넌트 사용하고 있구요!
:
: 주기적으로(2분) com port를 열고 닫기를 시도하고 있는데요(무선 CDMA 통신이라서 요금땜시)
: 문제는 어느날 갑자기 com port 가 열리지 않는 경우가 발생한다는 것입니다!
:
: Application를 죽이고 다시 실행시키면 다시 Port가 사용가능하구요!
:
: Application를 안죽이고 Port를 다시 열리게 하는 방법이 없을까요?!
:
: 도움 부탁드리겠습니다!
|