procedure
ResetCar; //полностью останавливает
машину
var CycleCount:Integer ;
begin
if (rrcwindow. Com. Connected=false )
then exit;
if (lsCD in rrcwindow.Com.GetLineStatus=True )
then
begin
CycleCount:=0;
while (lsCD
in rrcwindow.Com.GetLineStatus=True ) do
begin
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
CycleCount:=CycleCount+1;
if (CycleCount>MaxCycleCount)
then begin exit;end ;
end
end
else
begin
CycleCount:=0;
while (lsCD
in rrcwindow.Com.GetLineStatus=False ) do
begin
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
CycleCount:=CycleCount+1;
if (CycleCount>MaxCycleCount)
then begin exit;end ;
end ;
CycleCount:=0;
while (lsCD
in rrcwindow.Com.GetLineStatus=True ) do
begin
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
CycleCount:=CycleCount+1;
if (CycleCount>MaxCycleCount)then begin exit;end ;
end ;
end ;
end ;
procedure
SendCommandToCar(chUp:boolean ;chDown:boolean ;chLeft:boolean ;chRight:boolean );
// Задаем нужную команду машине
var Checksuma:Integer ;
x:Integer ;
begin
Checksuma:=0;
ResetCAR;
if (rrcwindow.Com.Connected=false )then exit;
{добавь сист защиты от непр действий}
if (chUp
= True ) then Checksuma:=Checksuma+2;
if (chDown = True ) then Checksuma:=Checksuma+1;
if (chLeft = True ) then Checksuma:=Checksuma+8;
if (chRight = True ) then Checksuma:=Checksuma+4;
for
x:=1 to Checksuma do //накрутим до нужного
значения
begin
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(False );
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
rrcwindow.Com.ToggleRTS(True );
//Такт на счетчик
end ;
end ;
Скачать
программу
|