Read SIS card from Delphi

Here is a simple smaple of reading SIS card data using EIDNative library from Delphi application.
program SisCardRead;
{$APPTYPE CONSOLE}
uses
Windows,
SysUtils,
Classes,
SISCard in '..\SISCard.pas',
EIDNative in '..\EIDNative.pas',
EIDCard in '..\EIDCard.pas';
type
TManagerProc = procedure; stdcall;
TManagerErrorProc = procedure(ErrorCode : cardinal); stdcall;
PManagerData = ^TManagerData;
TManagerData = record
CardInserted : TManagerProc;
CardActive : TManagerProc;
CardRemoved : TManagerProc;
CardInvalid : TManagerProc;
ReaderWaiting : TManagerProc;
Error : TManagerErrorProc;
end;
//callback functions
procedure DoCardInserted; stdcall;
begin
writeln('Card inserted');
end;
procedure DoCardActive; stdcall;
begin
writeln('Card active');
end;
procedure DoCardRemoved; stdcall;
begin
writeln('Card removed');
end;
procedure DoCardInvalid; stdcall;
begin
writeln('Card invalid');
end;
procedure DoReaderWaiting; stdcall;
begin
writeln('Reader waiting');
end;
procedure DoReaderError(ErrorCode : cardinal); stdcall;
begin
writeln('Reader error');
end;
var
MD : TManagerData;
SIS : TSISRecord;
procedure InitManagerData;
begin
MD.CardInserted := DoCardInserted;
MD.CardActive := DoCardActive;
MD.CardRemoved := DoCardRemoved;
MD.CardInvalid := DoCardInvalid;
MD.ReaderWaiting := DoReaderWaiting;
MD.Error := DoReaderError;
end;
begin
InitManagerData;
InitReaderEx(@MD);
if ReadSISCard(@SIS) then
begin
writeln('name: ',SIS.Name);
writeln('first name: ', SIS.FirstName);
writeln('initial: ', SIS.Initial);
writeln('sex: ',SIS.Sex);
writeln('birthdate ', SIS.BirthDate);
writeln('social security number: ', SIS.SocialSecurityNumber);
writeln('capture: ', SIS.CaptureDate);
writeln('begin: ', SIS.ValidityDateBegin);
writeln('end: ', SIS.ValidityDateEND);
writeln('num: ', SIS.CardNumber);
writeln('name: ', SIS.CardName);
end;
DoneReaderEx;
end.
Comments
Post a Comment