Пояснительная_записка (1211002), страница 10
Текст из файла (страница 10)
procedure globalTimer(Sender: TObject);
procedure Panel2Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
const
ProductName = 'FIRST-DEVICE';
VendorID = $0016;
ProductID = $00c0;
var
frm_main: Tfrm_main;
Result: Boolean;
MyFD: TJvHidDevice;
Report: status_t;
ox,oy,t,p:integer;
str:string;
implementation{$R *.dfm}
procedure Tfrm_main.HidCtlArrival(HidDev: TJvHidDevice);
begin if not assigned(MyFD) then frm_main.HidCtl.Enumerate; end;
function Tfrm_main.HidCtlEnumerate(HidDev: TJvHidDevice;
const Idx: Integer): Boolean;
begin
Result:= True;
If (Trim(HidDev.ProductName) = ProductName)
then If (HidDev.Attributes.VendorID = VendorID) and
(HidDev.Attributes.ProductID = ProductID)
then begin
frm_main.HidCtl.CheckOutByIndex(MyFD, Idx);
with frm_main.lbl_onoff do begin
Caption:= MyFD.ProductName + ' - On Line';
Font.Color:=clGreen; end;
frm_main.Caption:=MyFD.VendorName;
Result:= False; end;
end;
procedure Tfrm_main.HidCtlRemoval(HidDev: TJvHidDevice);
beginIf HidDev = MyFD then
begin // Disconnecting
MyFD:= nil;
with frm_main.lbl_onoff do begin
Caption:= 'Disconnected';
Font.Color:=clRed; end;end;
end;
procedure Tfrm_main.FormClose(Sender: TObject; var Action: TCloseAction);
begin MyFD:= nil;
end;
procedure Tfrm_main.TrackBar1Change(Sender: TObject);
begin with frm_main.Panel2 do begin
Caption:=inttostr(trackbar1.position); end;
end;
procedure Tfrm_main.PBTDVTimer(Sender: TObject);
var
i,output,input: byte;
begin if MyFD = nil then exit;
Report.ID:=0;
DataV.Clear;
input:= Report.port_b;
for i:=0 to 7 do begin
DataV.Items.Add(' DataD '+inttostr(i)+' = '+ BoolToStr(odd((input shr i) AND 1))); end;
end;
procedure Tfrm_main.RepClick(Sender: TObject);
begin //Writing
Result:=MyFD.SetFeature(Report,MyFD.Caps.FeatureReportByteLength);
//in case device does not respond
if not Result then ShowMessage(SysErrorMessage(GetLastError)) else
frm_main.panel3.color:=clRed; end;
procedure Tfrm_main.CheckBox1Click(Sender: TObject);
begin if MyFD = nil then exit;
Report.ID:=0;
if checkbox1.Checked=true then begin
octimer.Enabled:=true;
outimer.Enabled:=false;
panel5.Color:=clGreen;
panel5.Caption:='ON';
Report.port_c:=Report.port_c or (1 shl 1);
Report.port_c:=Report.port_c or (1 shl 0);
Rep.Click; end else begin
octimer.Enabled:=false;
outimer.Enabled:=true;
panel5.Color:=clRed;
panel5.Caption:='OFF'; end;
end;
procedure Tfrm_main.octimerTimer(Sender: TObject);
var
i:integer;
input:byte;
begin ox:=0; if MyFD = nil then exit;
Report.ID:=0;
if checkbox1.Checked=true
then begin
for i:=0 to 15 do
begin
Report.port_b:=16+i;
Rep.Click;
Result:=MyFD.GetFeature(Report,MyFD.Caps.FeatureReportByteLength);
input:=(report.port_a shr 3);
for oy:=0 to 7 do
Stringgrid1.Cells[(i+16),oy]:=BoolToStr(odd((input shr oy) AND 1)); end;
for i:=0 to 15 do
begin
Report.port_b:=32+i;
Rep.Click;
Result:=MyFD.GetFeature(Report,MyFD.Caps.FeatureReportByteLength);
input:=(report.port_a shr 3);
for oy:=0 to 7 do
Stringgrid1.Cells[i,oy]:=BoolToStr(odd((input shr oy) AND 1));end; end;
end;
procedure Tfrm_main.outimerTimer(Sender: TObject);
begin if MyFD = nil then exit; Report.ID:=0;
cicle.Click;
end;
procedure Tfrm_main.Button5Click(Sender: TObject);
begin
Report.port_c:=Report.port_c or (1 shl 1);
Report.port_c:=Report.port_c or (1 shl 0);
Rep.Click; end;
procedure Tfrm_main.Button6Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to 7 do
if (CheckListBox_tiny2.Checked[i]) then
Report.port_b:=Report.port_b and not (1 shl i) else
Report.port_b:=Report.port_b or (1 shl i);
Rep.Click;
end;
procedure Tfrm_main.Button7Click(Sender: TObject);
begin
Report.port_c:=Report.port_c and not (1 shl 0);
Rep.Click; end;
procedure Tfrm_main.Button8Click(Sender: TObject);
begin
Report.port_c:=Report.port_c or (1 shl 0);
Rep.Click; end;
procedure Tfrm_main.Button9Click(Sender: TObject);
begin
Report.port_b:=trackbar1.position;
if radiobutton1.Checked then begin
Report.port_b:=Report.port_b and not (1 shl 4);
Report.port_b:=Report.port_b or (1 shl 5);
Report.port_b:=Report.port_b or (1 shl 6);
p:=96;
end
else if radiobutton2.Checked then
begin
Report.port_b:=Report.port_b and not (1 shl 5);
Report.port_b:=Report.port_b or (1 shl 4);
Report.port_b:=Report.port_b or (1 shl 6);
p:=80 ; end
else if radiobutton3.Checked then
begin
Report.port_b:=Report.port_b and not (1 shl 6);
Report.port_b:=Report.port_b or (1 shl 4);
Report.port_b:=Report.port_b or (1 shl 5); p:=48;
end; rep.Click; end;
procedure Tfrm_main.Button10Click(Sender: TObject);
begin
Report.port_c:=Report.port_c and not (1 shl 1);
Rep.Click; end;
procedure Tfrm_main.Button11Click(Sender: TObject);
begin Report.port_c:=Report.port_c or (1 shl 1); //çàïèñü â Ñ1 = 1
Rep.Click; end;
procedure Tfrm_main.CicleClick(Sender: TObject);
begin
if t=1 then button5.Click;
if t=2 then button6.Click;
if t=3 then button7.Click;
if t=4 then button8.Click;
if t=5 then button9.Click;
if t=6 then button10.Click;
if t=7 then button11.Click; end;
procedure Tfrm_main.globalTimer(Sender: TObject);
begin if MyFD = nil then exit;
Report.ID:=0; t:=t+1; if t=8 then t:=0;
end;
end.















