📄 share.pas
字号:
// BYTE Block_0[16]; // 块0
Block_0:array[1..16] of byte;
// BYTE Block_1[16]; // 块1
Block_1:array[1..16] of byte;
// BYTE Block_2[16]; // 块2
Block_2:array[1..16] of byte;
// BYTE Block_3[16]; // 块3
Block_3:array[1..16] of byte ;
end;
type OPRNOTECASESTRUCT = packed record// 钱包操作
Header:HEADER_BLOCKOPRSTRUCT;
Money:integer; // 操作金额
end;
type WRITEBLOCKSTRUCT = packed record // 写块
Header:HEADER_BLOCKOPRSTRUCT;
BlockData:BLOCKSTRUCT ;
end;
type WRITESECTORSTRUCT = packed record// 写扇区
Header:HEADER_SECTOROPRSTRUCT;
SectorData:SECTORSTRUCT ;
end;
type WRITEDISCRETESECTORSTRUCT = packed record// 写离散扇区
Header:HEADER_BLOCKOPRSTRUCT;
SectorData:SECTORSTRUCT ;
end;
type BEEPSTRUCT = packed record // 蜂鸣
Count:BYTE; // 鸣叫次数
Times:WORD ; // 单次鸣叫时间
end;
type READERPROPSTRUCT = packed record // 机具属性结构
ReaderID:Cardinal; // 设备序列号
MainSoftwareVer:WORD; // 软件版本:主版本
MiniSoftwareVer:WORD; // 软件版本:子版本
MainHardwareVer:WORD; // 硬件版本:主版本
MiniHardwareVer:WORD ; // 硬件版本:子版本
end;
type PHONENUMBER = packed record // 拨号号码
Length:integer; // 号码长度
// char PhoneNum[20];
PhoneNum:array[1..20] of char ;
end;
type MYDATESTRUCT = packed record
Year:BYTE; // 年
Month:BYTE; // 月
Day:BYTE ; // 日
end;
type MYTIMESTRUCT = packed record
Hour:BYTE; // 时
Minute:BYTE; // 分
Second:BYTE ; // 秒
end;
// 扩展数据结构-HD4k
type ATTGUARDCARD_HD4K = packed record// 考勤门禁卡
FileSort:BYTE ; // 卡文件类型
SectorNo:BYTE ; // 扇区号
CardNo:Cardinal ;
// char PersonNo[7] ; // 编号
PersonNo:array[1..7] of char ;
Grade:BYTE ;
Group:BYTE ; // 级别和分组
// char Password[4] ; // 用户密码
Password:array[1..4] of char ;
// BYTE Name[8] ; // 姓名
myName:array[1..8] of byte ;
Date:MYDATESTRUCT ; // 卡有效期
end;
type POSCARD_HD4K = packed record // 消费卡
FileSort:BYTE ; // 卡文件类型
SectorNo:BYTE ; // 扇区号
CardNo:Cardinal ;
// BYTE Name[8] ; // 姓名
myName:array[1..8] of char ;
// char Password[4] ; // 用户密码
Password:array[1..4] of char ;
Group:BYTE ; // 消费分组
Date:MYDATESTRUCT ; // 卡有效期
Balance:integer ; // money
end;
type EW_HD4K = packed record // 充值结构
FileSort :BYTE ;
SectorNo :BYTE ; // 扇区号
CardNo :cardinal;
Balance : integer ;
TraceOfEW :WORD ; // 钱包流水号
Date :MYDATESTRUCT ; // 卡有效期
end;
type OPRCARD_HD4K = packed record // 操作员卡
FileSort:BYTE ; // 卡文件类型
SectorNo:BYTE ; // 扇区号
CardNo:Cardinal ;
// BYTE Name[8] ; // 姓名
Name:array[1..8] of char ;
// char Password[4] ; // 用户密码
Password:array[1..4] of char ;
Date:MYDATESTRUCT ; // 卡有效期
POSID:BYTE ; // 子系统号
OprID:BYTE ; // 操作员号
end;
// 扩展数据结构-HD6k
type ORGEW_HD6K = packed record // 原始钱包结构
CardID:CARDIDSTRUCT ;
EW_Orig:BLOCKSTRUCT ; // 钱包正本
EW_Copy:BLOCKSTRUCT ; // 钱包副本
LastDeal:BLOCKSTRUCT ; // 末笔交易
end;
type ORGSECTORDATA_HD6K = packed record // 原始扇区结构
CardID:CARDIDSTRUCT ;
Block_0:BLOCKSTRUCT ; // 块0
Block_1:BLOCKSTRUCT ; // 块1
Block_2:BLOCKSTRUCT ; // 块2
end;
type EW_HD6K = packed record // 钱包结构
CardID:CARDIDSTRUCT ;
IndexOfEW:BYTE ; // 钱包索引号
Balance:integer ; // 钱包金额-分
TraceOfEW:WORD ; // 钱包流水号
Deposit:integer ; // 本次充值额-分
SumOfDeposit:integer ; // 累计充值额-分
IntradaySumOfAmount:WORD ; // 日累计消费额-元
ReaderSN:Cardinal ; // Reader序列号
LastDate_D:MYDATESTRUCT ; // 充值日期-末笔
LastTime_D:MYTIMESTRUCT ; // 充值时间-末笔
end;
type CARDINFO_HD6K = packed record // 卡数据-HD6k
CardID:CARDIDSTRUCT ;
CardNo:Cardinal ; // 卡号
// char PersonNo[12] ; // 持卡人编号
PersonNo:array[1..12] of char ;
// BYTE Name[12] ; // 持卡人姓名
// Name:array[1..12] of byte ;
Myname : array[1..12] of char ;
GradeNo:BYTE ; // 级别, 分组
GroupNo:BYTE ;
DeptNo:BYTE ; // 部门编号
CardType:WORD ; // 卡类型
OprCardType:BYTE ; // 操作卡类型
StartDate:MYDATESTRUCT ; // 启用日期
DeadDate:MYDATESTRUCT ; // 截止日期
QuotaPerDay:WORD ; // 日限额-元
QuotaPerTimes:WORD ; // 次限额-元
CardDeposit:BYTE ; // 卡押金-元
// char Password[6] ; // 用户密码
Password:array[1..6] of char ;
CertType:WORD ; // 证件类型
// char CertNo[22] ; // 证件号码
CertNo:array[1..22] of char ;
LockFlag:LongBool ; // 锁卡标志
BCListVer: Cardinal ; // 黑名单版本
IsWriteEW:LongBool ; // 是否写钱包
EWallet:EW_HD6K ; // 钱包
end;
//价目表数据结构
type TARIFFSTRUCT = packed record
GoodsNumber:SmallInt ; // 商品编号
GoodsPrice:integer ; // 商品价格
// unsigned char GoodsName[10] // 商品名称
GoodsName:array[1..10] of Byte ;
end;
var
m_CardID :CARDIDSTRUCT ;
//#pragma comment(lib, "Reader.lib")
//---------------------------------------------------------------------------
const LOCALEOVERRIDEKEY = 'Software\\Borland\\Locales';
//extern "C" __declspec(dllimport) BOOL __stdcall CreateObject(HWND ParentWnd, CHINESETYPE Lang = GB_GB);
Function CreateObject(ParentWnd:HWND;Lang:CHINESETYPE;Alignment:Boolean):LongBool; Stdcall; external 'Reader.dll' name 'CreateObject';
//extern "C" __declspec(dllimport) void __stdcall DestroyObject();
Procedure DestroyObject() Stdcall; external 'Reader.dll' name 'DestroyObject';
//extern "C" __declspec(dllimport) void __stdcall SetCommLog(BOOL WriteLog = false, BOOL ReadLog = false);
Procedure SetCommLog(WriteLog:LONGBOOL;ReadLog:LONGBOOL) Stdcall; external 'Reader.dll' name 'SetCommLog';
//extern "C" __declspec(dllimport) void __stdcall SetReadIntervalTimeout(DWORD Time = 10);
Procedure SetReadIntervalTimeout(Time:DWORD) Stdcall; external 'Reader.dll' name 'SetReadIntervalTimeout';
//extern "C" __declspec(dllimport) BOOL __stdcall StartComm(const char *Port = "COM1", const char *Settings = "38400,n,8,0");
Function StartComm(Port:PChar;Settings:PChar):LONGBOOL; Stdcall; external 'Reader.dll' name 'StartComm';
//extern "C" __declspec(dllimport) void __stdcall StopComm();
Procedure StopComm() Stdcall; external 'Reader.dll' name 'StopComm';
//extern "C" __declspec(dllimport) void __stdcall SetCardRootKey(unsigned char OldKey[16], unsigned char NewKey[16]);
Procedure SetCardRootKey(OldKey:TKey;NewKey:TKey) Stdcall; external 'Reader.dll' name 'SetCardRootKey';
//extern "C" __declspec(dllimport) BOOL __stdcall SendCommand(long Command, void *Parameters = NULL, long SizeOfParameter = 0);
Function SendCommand(Command:integer;Parameters:Pointer;SizeOfParameter:integer):LongBool; Stdcall; external 'Reader.dll' name 'SendCommand';
//extern "C" __declspec(dllimport) long __stdcall GetCommand();
Function GetCommand():integer; Stdcall; external 'Reader.dll' name 'GetCommand';
//extern "C" __declspec(dllimport) BOOL __stdcall GetData(void *Buffer, long BufferLength);
Function GetData(Buffer:Pointer;BufferLength:integer):LongBool; Stdcall; external 'Reader.dll' name 'GetData';
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -