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

📄 share.pas

📁 HD 6P RFID 发卡器、考勤卡钟 RS232 通讯接口程序 Delphi 源码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
//	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 + -