Re[2]: Чтение с ком-порта
От: XorNeT  
Дата: 17.04.03 11:23
Оценка:
Здравствуйте, 4x, Вы писали:

4x>Здравствуйте, XorNeT, Вы писали:


XNT>Проблема в чем ф-я реадфайл при чтении возвращает 0 прочитанных байт и отсутствие ошибки.

XNT>Данные точно присутствуют (кидаю гипертерминалом по нуль-модему). Причем в другом потоке в этот порт пишу без проблем. таймауты установлены нулевые — чтение происходит в цикле. Кто подскажет где грабли жить могут?
XNT>всем пасиба

4x>Ты скажи, как СОМ-порт используешь (хотя-бы платформа какая)? Из-под виндов? Какими функциями обращаешся? Тогда виднее бодет...


Платформа в2к читаю реадфайлом предварительно вызывая SetCommState() & SetCommTimeouts()
if(hCom!= INVALID_HANDLE_VALUE){

DCB dCB;
::GetCommState(hCom,&dCB);
dCB.DCBlength = sizeof(DCB);
dCB.BaudRate = CBR_9600;
dCB.fParity = TRUE;
dCB.Parity = NOPARITY;
dCB.ByteSize = 8;
dCB.StopBits = ONESTOPBIT;
if(!::SetCommState(hCom,&dCB)){
TRACE("Error:SetComstate(rt)-%d\n",GetLastError());
}
}
COMMTIMEOUTS pCT;
pCT.ReadIntervalTimeout = MAXDWORD;
pCT.ReadTotalTimeoutConstant = 0;
pCT.ReadTotalTimeoutMultiplier = 0;
pCT.WriteTotalTimeoutConstant = 0;
pCT.WriteTotalTimeoutMultiplier =0;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.