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

Вниз

Опять вопрос по работе с COM портом.   Найти похожие ветки 

 
John_Korsh   (2006-01-29 14:20) [0]

Не поможете ли с простой задачей. Как грамотно дождаться окончания посылки байта при работе с COM портом?
Я использовал процедуру вида

procedure TMy_Com.putb_ex(b       : byte;
                      var res :boolean);
 { Send one byte. }

var
 stat                   : dword;
 i                      : longint;

 begin

  stat := 0;
  i := 0;
  While ((stat <> 1) and
        (i < 30000)) do
    begin
     WriteFile(com,
               b,
               1,
               stat,
               nil);
     i := i + 1;
    end;

  if stat = 1 then
   begin
    res := True;
   end
  else
   begin
    res := False;
   end;

 end;

При работе с реальным COM портом это работает, если же используется виртуальный порт на USB, то разваливается. Пока использую Sleep (2) после каждого байта (у меня 9600) - это плохо - напрасное ожидание.
Пршу извинени за плохой стиль в Delphi - я далеко не мастер, поэтому, если кто ответит - желателен пример.


 
Kolan ©   (2006-01-29 15:15) [1]

Попробую вам помочь.
Во первых зачем надо ждать конца посылки?
2. Если процесс отсылки байт засунить в поток то Sleep(2) нормальный вариант.
3. Неплохая статья: http://bcbsql.narod.ru/pub/rabcomm.htm


 
John_Korsh   (2006-01-29 15:53) [2]

Спасибо, жить стало маленько полегче.



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
8-1132141916
Syrnik
2005-11-16 14:51
2006.04.16
BT848 - захват с нескольких входов в DSPack


15-1143142521
Anonym
2006-03-23 22:35
2006.04.16
Программы для МК-52/61


4-1138123111
Игорь Степанов
2006-01-24 20:18
2006.04.16
Использование функции GetTickCount для создания задержки в 8 мсе


2-1144045771
DelphiLexx
2006-04-03 10:29
2006.04.16
Выделение текста


2-1143925921
AlexeyT
2006-04-02 01:12
2006.04.16
Установить шрифт при печати