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

Вниз

Краеведы , подскажите как сделать независимый таймер?   Найти похожие ветки 

 
JTAG   (2005-11-14 13:03) [0]

Задача такая вращаюсь в цикле принимаю данные с порта если нет данных в течении 1s вывалиаюсь по тайм ауту.
Пытался сделать так, конфигурирую компонент таймер на закладке system стандартной панели компонентов. Через каждые 50ms происходит событие и прибавляется единичка к переменной
Обработчик события выглядит так.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
curcount:=curcount+1;
end;
Процедура приема данных выглядит так :
function  readsymbol(l:integer):byte;
var ret:integer;
label exitwhile;
begin
ret:=-1;
form1.timer1.interval:=50;
form1.timer1.Enabled:=true; запускаю таймер
curcount:=0;
while (ret<0) do
      begin
      ret := sio_getch(1); // Принимаю данные
      form1.Memo1.Lines.Append("ret ="+Inttostr(ret)+" ");
      form1.Memo1.Lines.Append("curcount ="+Inttostr(curcount)+" ");
      sleep(10);
      if(curcount>20) then //Если данных нет 1s вываливаюсь из цикла
                         begin
                         showmessage ("Data transfer error!");
                         form1.timer1.enabled:=false;
                         goto exitwhile;
                         end;
      end;

Проблема в том что пока работает цикл таймер не считает, похоже что он не явлеется независимым процессом.
Как бы сделать чтобы он считал независимо от основного процесса? Или я не тот таймер взял.


 
Leonid Troyanovsky ©   (2005-11-14 13:42) [1]


> JTAG   (14.11.05 13:03)  

> Проблема в том что пока работает цикл таймер не считает


RTFM: Application.ProcessMessages

--
Regards, LVT.


 
Erik1 ©   (2005-11-14 14:48) [2]

Если принимаеш данные из порта, то лучше установить timeout и производить обработку в отдельном потоке.



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

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

Наверх




Память: 0.47 MB
Время: 0.064 c
2-1131939950
stef
2005-11-14 06:45
2005.12.04
Шестнадцатиричные числа


14-1131709129
Макс1
2005-11-11 14:38
2005.12.04
ОС Singularity


10-1108642942
Карелин Артем
2005-02-17 15:22
2005.12.04
Авторизация для вызова удаленного com-интерфейса. Как?


14-1131838128
Германн
2005-11-13 02:28
2005.12.04
Error 10106. Помогите кто может!


2-1132333023
Дева
2005-11-18 19:57
2005.12.04
О фильтре