readcard.pas

来自「ah 209型通用读卡器驱动程序源码」· PAS 代码 · 共 113 行

PAS
113
字号
unit ReadCard;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, CheckLst, ExtCtrls, CardDef, Buttons,SyncObjs;

type
  TWindowsModel = (wmSingle, wmMore);

  TReadCardForm = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    InfoText: TListBox;
    SpeedButton1: TSpeedButton;
    SkipButton: TSpeedButton;
    CancelButton: TSpeedButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

function GDCECVersion:PChar;StdCall;
function StartNet(Com :integer) :Boolean;StdCall;


procedure ReadSingle(Handle: HWND;
  var CardNo: PChar; var CardType: smallint; var Balance:Real); stdcall;

procedure WriteCardBalance;StdCall;

var
  bl : boolean = false;
  mCardNo:integer =0;
  mCardType:byte  =$00;
implementation

uses callcard, ReadingThread_Unit, Unit2;

{$R *.DFM}

procedure ReadSingle(Handle: HWND; var CardNo: PChar;
  var CardType: smallint; var Balance:Real);
var
  pBuffer : array[0..99] of char ;
  status:Integer;
begin
  try
      //Application.Handle := Handle;
      if((mCardNo <> 0) and (mCardType <> $00)) then
      begin
        OnlyOwner.Acquire;
        CardNo:=Pchar(IntTohex(mCardNo,8));
        if(mCardType = $11) then
           CardType:= 1;
        if(mCardType = $22) then
           CardType := 2;
        Balance:=0;
        mCardNo := 0;
        mCardType := $00;
        OnlyOwner.Release;
      end
      else
      begin
         CardNo := PChar('0');
         CardType := 0;
         Balance := 0;
      end;

  except
  end;    
end;

{ TReadCardForm }

procedure WriteCardBalance;
//回写射频卡帐户余额
begin
  if bl then
     begin
       ReadThread.Terminate;
       ReadThread.Free;
       Net_Exit;
     end;
end;

function StartNet(Com :integer) : Boolean;stdcall;
begin

   bl := Net_Start(Com,19200);
   if(bl) then
   begin
      Card_No := 0;
      Card_Type := $00;
      mCardNo := 0;
      mCardType := $00;
      OnlyOwner := TCriticalSection.Create;
      ReadThread := ReadingThread.Create(false);
   end;
   Result := bl;
end;

function GDCECVersion:PChar;
//用于控制版本信息;
begin
   Result:=PChar('1.0');  //为版本号
end;


end.

⌨️ 快捷键说明

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