Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.15;
Скачать: CL | DM;

Вниз

Блин! Во в голову вдарило-то! Вопрос про Com-порт..   Найти похожие ветки 

 
Red Alert   (2002-01-13 08:01) [0]

Читаю с порта
bResult:= ReadFile(hCom, CharArray[i], 1, dwRead, nil); // чтение одного байта из порта,но
порт в этот момент ничего не посылает и прога висит в на этой функции пока что-нить с порта не придет.
Можно ли сделать так, что если с порта ничего не идет, функция обрывалась?


 
paa713   (2002-01-13 12:14) [1]

Да можно. Даже скорее нужно !!!. Тебе надо применять ассинхронный ввод-вывод. Тогда получиьтся вот что:
1. Ты читаешь байт из порта.
2. Если он там есть, то все в порядке.
3. Если нет, то функция вернет ERROR_IO_PENDING.

Более подробно сейчас описать не могу. Нет времени. Если интересно пиши. Может даже поделюсь готовой библиотекой, если разыщу исходники.


 
Red Alert   (2002-01-14 14:34) [2]

Я проблему решил вот так, хотя твои рекомдации тоже попробую
я поставил таймаут на чтение данных
SetCommTimeOuts(hCom, setCommParam);
в структуру SetCommParam загнал таймоуты в мс
with SetCommParam do
begin
ReadIntervalTimeout:=50;
ReadTotalTimeoutMultiplier:=50;
ReadTotalTimeoutConstant:=0;
WriteTotalTimeoutMultiplier:=0;
WriteTotalTimeoutConstant:=0;
end;
Вроде работает, проверю позже на чтении с устройства


 
Varfolomey   (2002-01-19 21:44) [3]

Попробуй использовать параллельные потоки!


 
Илья   (2002-01-20 18:57) [4]

По моему SetCommTimeOuts наилучшее решение
если конечно читать порт в потоке с юзерским интерфейсом



Страницы: 1 вся ветка

Текущий архив: 2002.04.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
7-46528
SelfDestructor
2002-01-20 15:39
2002.04.15
Мелкий шрифт, крупный шрифт


14-46481
Алексей Петров
2002-03-05 16:35
2002.04.15
Головоломка на знание принципа работы компилятора Object Pascal


1-46416
Varg
2002-04-01 19:45
2002.04.15
работа с консолью


1-46433
DenKop
2002-04-01 13:07
2002.04.15
Шифрование с помощью RSA RC5.


1-46452
Andrei
2002-04-03 12:18
2002.04.15
Как запретить перевод фокуса из контрола типа TrxLookUpEdit?