⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comsdktest.pas

📁 脱机通讯开发包.可以支持VC,VB及多种编程语言.
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    RestoreUser(OpenDialog1.FileName);
end;

procedure TForm1.sbtnRS232Click(Sender: TObject);
begin
  edtnetAddress.EditLabel.Caption := 'Com Port:';
  edtNetPort.EditLabel.Caption := 'Device ID:';
  edtnetAddress.Text := 'COM1';
  edtNetPort.Text := '1';

end;

procedure TForm1.sbtnTCPIPClick(Sender: TObject);
begin
  edtnetAddress.EditLabel.Caption := 'IP Address:';
  edtNetPort.EditLabel.Caption := 'Port Number:';
  edtnetAddress.Text := '192.168.1.201';
  edtNetPort.Text := '$1112';
end;

procedure TForm1.btnACUnlockClick(Sender: TObject);
begin
  CZKem1.ACUnlock(DevId,200)
end;

procedure TForm1.chkEnabledClick(Sender: TObject);
begin
  CZKEM1.EnableDevice(DevID, chkEnabled.Checked);
end;
const
 TEMP1='A1CA268296295AA10B50AA604009469950016A41194E3C514A3754D318D6B94D4019DDBE7A' +
       '0312DCC078000EE52277F10735AF7A780D44A24FA30B4FB92BB80A819468610C221250401A' +
       '071C7A93092B8A6C400E18147DF109249C53B81740A747F30CC8945FBC12258D42540FDFA4' +
       '39FC10B9867CD20714993DB409C71C26330B453341BC10778873F40788B461B410C6BF4FA3' +
       '09E9B418382C9B266B930740BD5D78136AA73F323DC1283D405FB52D12220739A587380A31' +
       'AB2ED116263F293C0B7A46140614C334EA0F10117E4C56A5A8BACEFFFBEC12C0434C55A299' +
       'AACE6E76A2FCECA846A2FF99995D656F7707A1DFC9184BA2AE799958616D010A12A1EA994B' +
       'A19E6881545C6C0313A1FBA81F48A3BB7688BF5D1521248343A3CC8667AC49392FA1776728' +
       '42A7BC8467BB5215656742A79C6558CC7535556641A28A5646404BA3842663663FA2796521' +
       '3A51A3734545363DA16A312418086E57A2433343383E3A38231A120C026F5CA23454413D39' +
       '3314A227543061A244655246382104A2BA652164A2586454517E2A05A498656448A2615F57' +
       '54C207A4565A978AA2704B43C476A29AA8BD0FE0317773';
  TEMP2='ocoqgo5BMsMGAcUxvArqwlMxCOlEWfwM6qEuYQs4OTSAEHuUQ4EZOKhGQAyTETuTDUYqLABqNQM9wxNhDxUABMcRS/FQJChldAyKtSsjEQIjQ/gOnyYoIRhOKj7AEpQRSJNlMokb'+
        'AAVSrlTxDYAfNwAJLxErMwxKmQ88BcUbINQLSZMVfAZPk1zSBZoiafQMmK9tMwV+C2l8BJmEUzQOhjdctAl4sRdjC9I7SzgIdQt0swomn3Z4B5undLIQijUaQA/gFH9iA521brgI'+
        'dwhXkROGwmF8Cu4pVEQSX4BKCxARfk5Woau7aXQHFKH8qSPAR6L+qrpkcQYWof2agUeiz6mJXGkFGCGhuZgmR6LOiIdUXQscofyYgUqjq4ZmkiWiTKl5KEqjuWRWUS2hKZiCSqap'+
        'YkYyE3h5gUmnqlMzMiRniXhLoZpSPjWkAVVXiHdNoapjPi0hozd1d3YRTqG8eEkapEaGVnh4S6Hvnm4HpOeGZniJRU5cYGdzA6PIhneHgT9LYmhudqLahmWCd3d+Q2qmzMyXV2eY'+
        'lMJzpaqmh3d6hl/DA6Rmd4iXmGPAxAWiVIiageD/';

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  i:= CZKEM1.GetFPTempLengthStr(TEMP2);
  Memo1.lines.add(format('FPTempLength=%d',[i]));

  if CZKEM1.SetEnrollDataStr(devid, 1, devid, 0, 1, TEMP2, 0) then
    Memo1.lines.add('SetEnrollDataStr OK')
  else
    Memo1.lines.add('SetEnrollDataStr Fail.');
end;

function TForm1.BTimeDecode(const TimeStr: string): integer;
var
  p,m,s: integer;
begin
  p := pos(':', TimeStr);
  m:=strtointdef(copy(TimeStr,1,p-1),-1);
  s:=strtointdef(copy(TimeStr,p+1,100),-1);
  if (m<0) or (s<0) or (m>255) or (s>255) then result := 255;
  result := m *256+s;
end;

function TForm1.BTimeEncode(MinuteSecond: integer): string;
var
  m,s: integer;
begin
  m:=MinuteSecond div 256;
  s:=MinuteSecond mod 256;
  if (MinuteSecond<0) or (m>59) or (s>59) then
    result := 'No'
  else
    result := format('%d:%d', [m,s]);
end;

function TForm1.BNetSpeedDecode(const speed: string): integer;
var
  i: integer;
begin
  result := NetSpeedValues[0];
  for i := 0 to length(NetSpeeds)-1 do
  if speed=NetSpeeds[i] then
  begin
    result := NetSpeedValues[i];
    exit;
  end;
end;

function TForm1.BNetSpeedEncode(speed: integer): string;
var
  i: integer;
begin
  result := NetSpeeds[0];
  for i := 0 to length(NetSpeeds)-1 do
  if speed=NetSpeedValues[i] then
  begin
    result := NetSpeeds[i];
    exit;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
    SaveGLogs(SaveDialog1.filename);
end;

function TForm1.SaveGLogs(const fn: string): integer;
var
  dwEnrollNumber, dwSEnrollNumber, Params3,
    Params0, Params1, dwManipulation, Params2, dwYear,
    dwMonth, dwDay, dwHour, dwMinute: Integer;
  s: string;
  f: tfilestream;
begin
  result := 0;
  f:=tfilestream.Create(fn, fmOpenWrite or fmCreate);
  try
  if CZKEM1.ReadSuperLogData(DevId) then
  while CZKEM1.GetSuperLogData(DevId, dwEnrollNumber, dwSEnrollNumber, Params3,
    Params0, Params1, dwManipulation, Params2, dwYear,
    dwMonth, dwDay, dwHour, dwMinute) do
  begin
    s:=format('%5d %5d %5d %5d %5d %5d %d-%d-%d %d:%d'#13#10,[dwSEnrollNumber, dwManipulation,
      Params0, Params1, Params2, Params3,
      dwYear, dwMonth, dwDay, dwHour, dwMinute]);
    f.Write(s[1],length(s));
    inc(result);
  end;
  finally
    f.Free;
  end;
end;

procedure TForm1.btnSMSClick(Sender: TObject);
begin
  if btnSMS.Tag=0 then
  begin
    //CZKEM1.SetSMS(0, 4, 'Welcome to ZK');
   // CZKEM1.SetSMS(1, 2, 'Meet at 10:00');
   // CZKEM1.SetSMS(2, 3, 'Write a report for C12 item');
    //btnSMS.Caption := 'Clear SMS';
    //btnSMS.Tag:=1;
  end
  else
  begin
   // CZKEM1.SetSMS(0, 0, '');
    //CZKEM1.SetSMS(1, 0, '');
   // CZKEM1.SetSMS(2, 0, '');
   // btnSMS.Caption := 'Set SMS';
   // btnSMS.Tag:=0;
  end;
end;

procedure TForm1.Button7Click(Sender: TObject);
var
  w,h: integer;
  image: array of byte;
begin
  setlength(image, 1024*512);
  w := 80;
  if CZKEM1.CaptureImage(TRUE, w, h, Image[0], 'fp.bmp') then
  begin
    addinfo('Captured an image.');
  end
  else
    addinfo('Capture image fail.');
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  if CZKEM1.UpdateFirmware('emfw.cfg') then
  begin
    addinfo('UpdateFirmware success.pls restart the devie.');
  end
  else
    addinfo('UpdateFirmware fail.');
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  CZKEM1.clearLCd;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  czkem1.EnableClock(0);
  czkem1.WriteLCD(0,0,'        ***          ');
  czkem1.WriteLCD(1,0,'Welcome to ZK');
  czkem1.WriteLCD(2,0,'        ***          ');
  czkem1.WriteLCD(3,0,'        ');
  MessageDlg('Close this window to restore lcd display', mtInformation, [mbOK], 0);
  czkem1.EnableClock(1);
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  czkem1.Beep(1000);
end;

procedure TForm1.Button13Click(Sender: TObject);
var
  i: integer;
begin
  for i:=0 to 9 do
  begin
    czkem1.PlayVoiceByIndex(i);
    if MessageDlg('Continue next voice?', mtConfirmation, [mbYes,mbNo], 0) <> mrYes then
      exit;
  end;
  czkem1.PlayVoice(30,29);
end;

procedure TForm1.Button15Click(Sender: TObject);
var
  ErrorCode: integer;
begin
  CZkEM1.CancelOperation;
  CZkEM1.DelUserTmp(1, 65530, 0);
  if CZkEM1.StartEnroll(65530, 0) then
    AddInfo('Start Enroll a user, UserID=65530, FingerID=0')
  else
  begin
    CZkEM1.GetLastError(ErrorCode);
    AddInfo('StartEnroll Error, Code='+inttostr(ErrorCode));
  end;
end;

procedure TForm1.Button16Click(Sender: TObject);
var
  ErrorCode: integer;
begin
  CZkEM1.CancelOperation;
  if CZkEM1.StartVerify(65530, 0) then
    AddInfo('Start Verify a user, UserID=65530, FingerID=0')
  else
  begin
    CZkEM1.GetLastError(ErrorCode);
    AddInfo('StartVerify Error, Code='+inttostr(ErrorCode));
  end;
end;

procedure TForm1.Button17Click(Sender: TObject);
var
  ErrorCode: integer;
begin
  CZkEM1.CancelOperation;
  if CZkEM1.StartIdentify then
    AddInfo('StartIdentify user.')
  else
  begin
    CZkEM1.GetLastError(ErrorCode);
    AddInfo('StartIdentify Error, Code='+inttostr(ErrorCode));
  end;
end;

procedure TForm1.Button18Click(Sender: TObject);
var
  ErrorCode: integer;
begin
  if CZkEM1.CancelOperation then
    AddInfo('CancelOperation OK.')
  else
  begin
    CZkEM1.GetLastError(ErrorCode);
    AddInfo('CancelOperation Error, Code='+inttostr(ErrorCode));
  end;
end;

procedure TForm1.CZKEM1FingerFeature(ASender: TObject; Score: Integer);
begin
  AddInfo(format('Finger Feature: %d',[Score]));
end;

procedure TForm1.CZKEM1Verify(ASender: TObject; UserID: Integer);
begin
  AddInfo(format('User Verified: %d',[UserID]));
end;

procedure TForm1.Button19Click(Sender: TObject);
var
  ErrorCode: integer;
begin
  if SaveDialog2.Execute then
  begin
    if CZKEM1.BackupData(SaveDialog2.FileName) then
    begin
      AddInfo('Backup Data to File: "'+SaveDialog2.FileName+'" OK.');
      if OpenDialog2.FileName='' then
        OpenDialog2.FileName := SaveDialog2.FileName;
    end
    else
    begin
      CZkEM1.GetLastError(ErrorCode);
      AddInfo('CancelOperation Error, Code='+inttostr(ErrorCode));
    end;
  end;
end;

procedure TForm1.Button20Click(Sender: TObject);
var
  ErrorCode: integer;
begin
  if OpenDialog2.Execute then
  begin
    if CZKEM1.RestoreData(OpenDialog2.FileName) then
      AddInfo('Restore Data from File: "'+OpenDialog2.FileName+'" OK.')
    else
    begin
      CZkEM1.GetLastError(ErrorCode);
      AddInfo('RestoreData Error, Code='+inttostr(ErrorCode));
    end;
  end;

end;


procedure TForm1.Button2Click(Sender: TObject);
var
  name : string;
  template: widestring;
  pass : string;
  machinenum,EnrollNum,pri1,fingerIndex: integer;
  fL: integer;
  pri,xx : boolean;
  cc : integer;
begin
    name :='aaa';
    pass := '';
    machinenum := 1;
    EnrollNum := 1;
    pri := true;
    pri1 := 0;
    fingerIndex:=0;
    fL :=2048;
 {   template := 'A1CA1C83A04029823D23442FC3177E292C422156AE22421242B554020F3D4' +
                 'B4F8204DDB62AC21031B41E020B43B135C21326964CC207169F5D83061E9F3A'+
                 'C20B153364820A2BCA684206CF2228C21465231BC30E5BB75AC20C38C724421C'+
                 'E04038421190353F820E9CAA18C20B4D273CC21585BC22021441334583139F1B4902068B'+
                 '13194208718A2CC3087CBB4482538A26646B0C9D840E12ADB8700A1115C304A2ACB98A12C0C2'+
                 '00A3BBCAA99B15C0C175A4ABBCBA9BAB18C0C176A49ABCCABBAA19C07E72A59ABBCDBBBAAAC0'+
                 '7E6EA5ABCCCDCCAAAA1BC07E69A5ADDDDDDDAA991CC07E64A5CCEEFFECB9991EC07E6062666C75'+
                 '060F17A1CBA881C07E5A5B5E646F05121BA2CAA877C07E525254596607171FA2CB887724C07E4D81'+
                 '4C4725A33CCB777625C07E4B4A4843382BA32CDC646627C07E4948453D332A242935A2C43466C07E'+
                 '4948443B2F251E2342A2901466C07E4A49463E2E1F1506574B413B3735C0C14B4A462A120B736155'+
                 '4B443E3CC0C14F50556D07047065A1112248C0C2575E6B00016FA1134459C0C76BA156555DC0C96A6'+
                 '967E00000';  }
                 template := 'A1CA20839C26602F0C3CA9652F083ABF462E0978C349ED0C7420396B3A43B8282C11D3C2'+
                 '552C0569AD2B6C1142BF212A11DB4034EA0A01A7316C0C352340AC172A1148ED12162570ED0A2D3C722E0AD1'+
                 'C33A2E0872373FAB0C80A7516A18A32E4FA84989A849E8119F25296809449F2DA811459C24E80E501523E70E5B1'+
                 '949A215870B5255188A9435C210681A393A1F5A387E7B1FC2B240FB0F942F803C1334A03EC0552426E4470FA00'+
                 '46B14AE108D0C1011C503060709C0C477A2CBBADDC0C373A3ADDBCFD91CC0C36FA4CFDCFFCA9AC0C265686E750'+
                 '50B14A2EBCA89C0C25F5F6470020C18A2FAAA99C0C15657575B64750F1CA1F9AA82C150A1979B6D1CA3EDAA877'+
                 '8C14CA187443628A37EA976587E4B8147423A31292931A2D844477E4B81463F352D252739A2F34335C14B4B473F'+
                 '33261D194BA2511435C14D4D4B442F1B1305615248A11546C14F505254760E09776A5C53A10357C1535559617104'+
                 '04746BA2032589C1575B606972A4F812355799C260A5DEEB7446757865C369A4CCA764676766E0FFFFFF';
//    xx := czkem1.GetUserTmpStr(machinenum,EnrollNum,fingerIndex,template,fingerLen);
       // czkem1.GetUserTmpStr(machinenum,EnrollNum,fingerIndex,template,fL);
    xx := czkem1.setUserInfo(machinenum,EnrollNum,name,pass,pri1,pri);
    xx := czkem1.SetUserTmpStr(machinenum,EnrollNum,fingerIndex,template);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -