📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Lede, ExtCtrls;
type
/////////////////////////////////////
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Led1: TLed;
Led2: TLed;
Button3: TButton;
Button4: TButton;
Led3: TLed;
Led4: TLed;
Button5: TButton;
Label1: TLabel;
Memo1: TMemo;
Button6: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
flag: BOOL;
end;
TLedStatus = (LedOn, LedOff, LedFlash);
TBroadInfo = record
szDevicePath: array[0..127] of Char;
szManufacturer: array[0..127] of Char;
szProduct: array[0..127] of Char;
szSerialNo: array[0..127] of Char;
szUserInfo: array[0..127] of Char;
end;
PBroadInfo = ^TBroadInfo;
MyPchar = ^Byte;
var
Form1: TForm1;
PtrBroadinfo: PBroadInfo;
BInfo: TBroadInfo;
implementation
function ReadPort1(pstr: PChar;len: Byte):Integer;
stdcall; external'EasyD12.dll';
function WritePort1(pstr: PChar;len: Byte):Integer;
stdcall; external'EasyD12.dll';
function ZBMgr_Init(hWnd: HWND): BOOL;
stdcall; external'ZBMGR.dll';
function ZBMgr_Uninit(hWnd: HWND): BOOL;
stdcall; external'ZBMGR.dll';
function ZBMgr_LED(nIndex: Integer; led: TLedStatus): BOOL;
stdcall; external'ZBMGR.dll';
function ZBMgr_GetBoardInfo(nIndex: Integer; lpBoardInfo: PBroadInfo): BOOL;
stdcall; external'ZBMGR.dll';
function ZBMgr_GetBoardCount(): Integer;
stdcall; external'ZBMGR.dll';
function ZBMgr_ReadCode(nIndex: Integer; dwAddr: Integer;
StrBuf: MyPchar; dwLength: Integer): BOOL;
stdcall; external'ZBMGR.dll';
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
buf: array[0..16] of byte;
tp: PChar;
//i: integer;
begin
buf[0]:=0;
buf[3]:=1;
buf[4]:=0;
tp:=@buf;
WritePort1(tp,4);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
buf: array[0..16] of byte;
tp: PChar;
//i: integer;
begin
buf[0]:=0;
buf[3]:=2;
buf[4]:=0;
tp:=@buf;
WritePort1(tp,4);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ZBMgr_Init(Application.Handle);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ZBMgr_Uninit(Application.Handle);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
flag:=ZBMgr_LED(0,LedOff);
led3.LedOn:=flag;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
flag:=ZBMgr_LED(0,LedFlash);
led4.LedOn:=flag;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Label1.Caption:=IntToStr(ZBMgr_GetBoardCount());
PtrBroadinfo:=@BInfo;
flag:=ZBMgr_GetBoardInfo(0,PtrBroadinfo);
led4.LedOn:=flag;
if flag then
begin
//Memo1.Lines.SetText(BInfo.szManufacturer);
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
str: array[0..4096] of Byte;
i,j,temp1,temp2: Longint;
//ss: string;
RecF: File of Byte;
//tp: string;
//tp: PChar;
begin
Button6.Enabled:=false;
AssignFile(RecF,'Rec000');
Rewrite(RecF);
//tp:=str;
temp1:=GetTickCount();
for i:=0 to 32 do
begin
for j:=0 to 4096 do str[j]:=0;
flag:= ZBMgr_ReadCode(0,0,@str,4096);
if not flag then break;
BlockWrite(RecF,str,4096);
end;
temp2:=GetTickCount();
//if i
i:=temp2-temp1;
//ss:=String BlockWrite WriteFile
if flag then
begin
Label1.Caption:=IntToStr(i);
//Memo1.Lines.SetText(tp);
end;
CloseFile(RecF);
Button6.Enabled:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -