Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

чтение из COM порта [D7, WinXP]


suharew ©   (2006-05-10 19:13:00) 

Есть Com порт. Пытаюсь прочитать из него данные


Function ReadText: string;
var
  d: array[1..40] of Byte;
  s: string;
  BytesRead:cardinal;
   i: Integer;
begin
  Result := '';
  if not ReadFile(ComPort, d, SizeOf(d), BytesRead, nil) then
  begin
    { Raise an exception }
  end;
  s := '';
  for i := 1 to BytesRead do s := s +' '+ inttostr(d[i]);
  Result := s;
  if trim(s)='' then
    form1.Memo2.Lines.add('No data')
  else form1.Memo2.Lines.add(s);
end;



Все вроде работает, данные я получаю. Но при чтении программа намертво зависает пока не прочитаю все данные. Как такое можно исправить. подскажите???


tesseract   (2006-05-15 11:42:00) [1]

см структуру overlapped и используй потоки.


Сергей М.   (2006-05-11 09:46:00) [2]

см. ReadFileEx()


Anatoly Podgoretsky   (2006-05-11 08:56:00) [3]

Этот код должнен быть в отдельном потоке


GanibalLector   (2006-05-11 01:04:00) [4]

посмотри в сторону SetCommTimeOuts, например


Наверх

Титульная страница Поиск, карта сайта Написать письмо