Re: как правильно определить наличие модема ?
От: slavik L Германия  
Дата: 26.01.04 11:43
Оценка:
Здравствуйте, alexora, Вы писали:

A>thanx


надежно так (с несколькими попытками запроса статуса):

const char MODEM_CMD[][16] = {
"OK\r"
............
};


WriteFile(hPort, INIT_CMD, lstrlen(INIT_CMD), &dwBytes, NULL);
Sleep(1);
WaitCommEvent(hPort, &dwMask, NULL);
Sleep(3000);
int tmpCnt = 0;
while( tmpCnt++ <= 100 )
{
Sleep(70);
ClearCommError(hPort, &dwMask, &stCS);
Sleep(1);
if( stCS.cbInQue!=0 )
{
ReadFile(hPort, msg, stCS.cbInQue, &dwBytes, NULL);
if( strstr(msg, MODEM_CMD[0])!=0 ){
bInitOk = true;
break;
}
}
if(tmpCnt >= 100)
{
sprintf(msg, "Возможно модем не подключен к COM-порту");
theApp.SetInfoStatusText( msg );
//MessageBox(NULL, msg, "Ошибка", MB_ICONSTOP );
bInitOk = false;
break;
//return false;
}
}
if( bInitOk ) break;
}

if( iInitTryNum>=3 && !bInitOk ){
sprintf(msg, "Возможно модем не подключен к COM-порту");
theApp.SetInfoStatusText( msg );
MessageBox(NULL, msg, "Ошибка", MB_ICONSTOP );
return false;
}
else
theApp.SetInfoStatusText( "Модем проинициалиизрован" );
best regards, black c0de
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.