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

📄 scdlldemounit.~pas

📁 对带LED显示的非接触IC卡读写器的控制
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit SCDLLDemoUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TDemoFrm = class(TForm)
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    ComPortCBB: TComboBox;
    Label1: TLabel;
    Button2: TButton;
    GroupBox2: TGroupBox;
    Button1: TButton;
    Edit1: TEdit;
    Button7: TButton;
    Button8: TButton;
    GroupBox3: TGroupBox;
    DspDataET: TEdit;
    Button9: TButton;
    Label4: TLabel;
    Label5: TLabel;
    dotET: TEdit;
    Button10: TButton;
    Button11: TButton;
    GroupBox4: TGroupBox;
    Edit2: TEdit;
    Button12: TButton;
    Label6: TLabel;
    GroupBox5: TGroupBox;
    Label7: TLabel;
    SNRET: TEdit;
    Button13: TButton;
    WriteBtn: TButton;
    ReadBtn: TButton;
    DataET: TEdit;
    Timer1: TTimer;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    GroupBox6: TGroupBox;
    Label3: TLabel;
    KeyCBB: TComboBox;
    Button6: TButton;
    Button17: TButton;
    Label8: TLabel;
    NewKeyCBB: TComboBox;
    GroupBox7: TGroupBox;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label2: TLabel;
    Label9: TLabel;
    SectorCBB: TComboBox;
    ChangeKeyBtn: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure WriteBtnClick(Sender: TObject);
    procedure ReadBtnClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DemoFrm: TDemoFrm;
  iRe:integer;
  rHandle:Thandle;
  pSNR:pchar;
implementation

{$R *.dfm}
uses SCDLLUnit;

procedure TDemoFrm.FormCreate(Sender: TObject);
begin
     ComPortCBB.ItemIndex := 0;
     KeyCBB.ItemIndex :=0;
     NewKeyCBB.ItemIndex := 0;
     SectorCBB.ItemIndex := 0;
     dotET.Text := '6';
     DspDataET.Text :='12345678';
     Edit2.Text := '3';
     DataET.Text := '11223344556677889900AABBCCDDEEFF';
     SNRET.Text := '';
end;

procedure TDemoFrm.Button1Click(Sender: TObject);
begin
     iRe:=InitPort(ComPortCBB.ItemIndex +1,rHandle);
     Memo1.Lines.Add( IntToStr(iRe) );
end;

procedure TDemoFrm.Button2Click(Sender: TObject);
begin
     iRe:=ClosePort(rHandle);

     Memo1.Lines.Add( IntToStr(iRe) );

end;

procedure TDemoFrm.Button3Click(Sender: TObject);
begin
     iRe := SC_Request(rHandle); //寻卡
     Memo1.Lines.Add( IntToStr(iRe) );
     if iRe=4 then
     Begin
          Label2.Caption:= '有卡';
          Label2.Update;
     end;

     if iRe<>4 then
     Begin
          Label2.Caption:= '无卡';
          Label2.Update;
     end;
     
end;

procedure TDemoFrm.Button4Click(Sender: TObject);
Var
   pSNR:Pchar;
begin
     GetMem(pSNR,16);
     iRe:=SC_GetSnr(rHandle,pSNR);

     Memo1.Lines.Add( IntToStr(iRe) +'   '+String(pSNR));
     FreeMem(pSNR,16);

end;

procedure TDemoFrm.Button5Click(Sender: TObject);
Var
   pSNR:Pchar;
begin
     iRe:=SC_SelectSnr(rHandle,pSNR);

     Memo1.Lines.Add( IntToStr(iRe) +'   '+String(pSNR));

end;

procedure TDemoFrm.Button6Click(Sender: TObject);
{
Var
   pKey:Pchar;
begin
     pKey:=Pchar('FFFFFFFFFFFF');
     iRe:=SC_Authentication(rHandle,60,1,pKey);
     Memo1.Lines.Add( IntToStr(iRe) +'   ');
}     
Var
   iMode:integer;
   iSector:integer;
   pKey:Pchar;
begin
     GetMem(pSNR,64);
     iMode := 60;
     iSector := StrToInt(SectorCBB.Text);
     pKey := Pchar( KeyCBB.Text );
     iRe:= SC_Authentication( rHandle,iMode,iSector,pKey);
     Memo1.Lines.Add( intTostr(iRe));
     FreeMem(pSNR,64);

end;

procedure TDemoFrm.Button7Click(Sender: TObject);
Var
   iBlock:integer;
   pData:Pchar;
begin
     GetMem(pData,64);
     iBlock := 1;
     iRe:= SC_RFRead(rHandle, iBlock, pData);
     Memo1.Lines.Add( intTostr(iRe)+'  Data: '+String(pData) );
     FreeMem(pData,64);
end;

procedure TDemoFrm.Button8Click(Sender: TObject);
Var
   iBlock:integer;
   pData:Pchar;
begin
     //GetMem(pData,64);
     iBlock := 1;
     pData := Pchar('11223344556677889900AABBCCDDEEFF');
     iRe:= SC_RFWrite( rHandle,iBlock,pData);
     Memo1.Lines.Add( intTostr(iRe)+'  Data: '+String(pData) );
     //FreeMem(pData,64);
end;

procedure TDemoFrm.Button9Click(Sender: TObject);
Var
     pData:Pchar;
     idot :integer;
begin
     //pData := Pchar('11223344556677889900AABBCCDDEEFF');
     pData:= Pchar(DspDataET.Text );
     idot := StrToInt(dotEt.Text);
     iRe:= SC_LEDDSP( rHandle,pData,idot);

     
end;

procedure TDemoFrm.Button10Click(Sender: TObject);
Var
     pData:Pchar;
     fValues:Extended;
begin

     pData:= Pchar(DspDataET.Text );
     fValues:=123456.78;
     iRe:= SC_LEDDSPV( rHandle,fValues);
     
end;

procedure TDemoFrm.Button12Click(Sender: TObject);
begin
     iRe := SC_Beep(rHandle,0,StrToInt(Edit2.Text));
end;

procedure TDemoFrm.Button13Click(Sender: TObject);
var
   pSNR:Pchar;
begin

     //打开通讯口
     iRe:=InitPort(ComPortCBB.ItemIndex +1,rHandle);
     if iRe <> 0 then
     Begin Application.MessageBox('无法打开串口,可能是以下原因造成的,请检查....'+
                                  #13+#13+'1.计算的串口(COM口)被其他设备占,请先关闭其它程序重试......'+#13+#13+
                                  '2.读写机的通讯电缆没有与计算机连接,请检查......','系统提示-串口操作'
                                  ,MB_OK+MB_ICONWARNING); Exit; end; //打开串口失败,提示后,退出

     //查询读写机上是否有卡,有卡继续下一步操作,无卡退出
     iRe := SC_Request(rHandle); //寻卡
     //Memo1.Lines.Add( IntToStr(iRe) );
     if iRe<>4 then

⌨️ 快捷键说明

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