PDA

Просмотр полной версии : Таймер на отправление пакетов


semiromid
01.08.2010, 08:03
Помогите зделать скрипт для отправнения нужного пакета через определенное количества времени.

Например я хочю оттправлять пакет "19 F5 E7 00 10 00 00 00 00" .В режиме бесконечной цикличности . с минимальным количеством времени между отправками.

Breadfan
01.08.2010, 09:39
http://coderx.ru/showpost.php?p=30293&postcount=404

semiromid
01.08.2010, 20:42
Разобрался Спасибо).но возникла проблема. Как задержку между отправкой пакетов сделать поменьше?
var
TimerCycle:integer;
timer:TTimer;

procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=1;
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
TimerCycle:=1;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerCycle of
1:begin
buf:=HStr('95 DA 1A 01 10 01 00 00 00 00 00 00 00'); //1 пакет
sendtoserver;
Inc(TimerCycle);
timer.interval:=1;
end;
2:begin
buf:=HStr('2C DA 1A 01 10 01 00 00 00 00 00 00 00 00 00 00 00'); //2 пакет
sendtoserver;
Inc(TimerCycle);
timer.interval:=1;
end;
3:begin
buf:=HStr('95 DA 1A 01 10 01 00 00 00 00 00 00 00'); //3 пакет
sendtoserver;
Inc(TimerCycle);
timer.interval:=1;
end;
4:begin
buf:=HStr('2C DA 1A 01 10 01 00 00 00 00 00 00 00 00 00 00 00'); //4 пакет
sendtoserver;
TimerCycle:=1;
timer.interval:=1;
end;
end;
end;

procedure Free;
begin
timer.free;
end;


begin
useforconnectid := ConnectID;
if FromClient and (pck=HStr('56 0D 00 00 00 00 00 00 00 00')) then timer.enabled:=true;
if FromClient and (pck=HStr('39 0F 02 00 00 00 00 00 00 00')) then timer.enabled:=false;
end.

NLObP
01.08.2010, 21:09
Разобрался Спасибо).но возникла проблема. Как задержку между отправкой пакетов сделать поменьше?
У тебя и так самый минимум стоит - 1 миллисекунда
timer.interval:=1;
Здесь значение числа в миллисекундах (Миллисекунда — одна тысячная секунды), то есть 1 сек = 1000, вот в скрипте, в пределах от 200-300 и выше надо ставить.