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

📄 zlg500.h

📁 Mifare非接触IC读卡器与PC通信程序
💻 H
字号:

#define STX		0X7E	//正文的开头
#define	EXT		0XBB	//正文的结束

#define PWD_LEN 0x06	//密码长度

/*错误值*/
#define ERR_NOCARD		0XA0	//没有卡
#define ERR_CMDFAILED	0XA1	//指令执行失败
#define ERR_OVERFLOW	0XA2	//值溢出
#define ERR_COMMERR		0XFF	//通讯错误

/*命令值*/
//低级命令
#define CMD_RESET			0X10	//执行一个软复位
#define CMD_CLOSE			0X11	//关闭RC500
#define CMD_AUTHENOPWD		0X20	//密码验证
#define CMD_LOADPWD			0X21	//装载密匙
#define CMD_REQUEST			0X27	//请求
#define CMD_ANTICOLL		0X28	//防碰撞
#define CMD_SELECT			0X29	//选择
#define CMD_READBLOCK		0X40	//对一块进行读操作
#define CMD_WRITEBLOCK		0X50	//对一块进行写操作
#define CMD_VALUE			0X59	//值操作
#define CMD_ADDVAL			0X60	//对一个块的值进行加操作
#define CMD_REDUCEVAL		0X61	//对一个块的值进行减操作
#define CMD_COPYBLOCK		0X62	//把一块的值复制到另一个块
#define CMD_HALT			0X63	//暂停
#define CMD_CLOSEANTENNA	0X64	//关闭天线输出数ms
//高级命令
#define CMD_SELONECARD		0X30	//选择一张卡
#define CMD_SELCARDS		0X31	//多张卡选择/卡列表
#define CMD_READBLOCKVAL	0X41	//读一个块的值
#define CMD_WRITEBLOCKVAL	0X51	//写一个块的值
//通信控制及其它
#define CMD_READADDR		0X70	//取读卡器的地址号
#define CMD_SETPARAMETER	0X80	//读卡器参数设置
#define CMD_READPARAMETER	0X81	//读取读卡器参数值
#define CMD_CONTROL			0X90	//读卡器指示控制

void __stdcall zlg500_Reset(unsigned char addr);
void __stdcall zlg500_Close(unsigned char addr);
int __stdcall zlg500_AuthenPwd(unsigned char addr,unsigned char keytype,
							   unsigned char blocknr);
int __stdcall zlg500_LoadPwd(unsigned char addr,unsigned char keytype,
							 unsigned char keynr,unsigned char *key);
int __stdcall zlg500_Request(unsigned char addr,unsigned char questtype,
							 unsigned short &type);
int __stdcall zlg500_Anticoll(unsigned char addr,unsigned char bitcount,
							  unsigned long &snr);
int __stdcall zlg500_Select(unsigned char addr,unsigned long cardnr,
							unsigned char &size);
int __stdcall zlg500_ReadBlock(unsigned char addr,unsigned char blocknr,
							   unsigned char *blockdata);
int __stdcall zlg500_WriteBlock(unsigned char addr,unsigned char blocknr,
								unsigned char *blockdata);
int __stdcall zlg500_Value(unsigned char addr,unsigned char mode,
						   unsigned char blocknr,unsigned long val,
						   unsigned char desblocknr);
int __stdcall zlg500_AddVal(unsigned char addr,unsigned char blocknr,
							unsigned long addval);
int __stdcall zlg500_ReduceVal(unsigned char addr,unsigned char blocknr,
							   unsigned long reduceval);
int __stdcall zlg500_CopyBlock(unsigned char addr,unsigned char sourceblocknr,
							   unsigned char desblocknr);
int __stdcall zlg500_Halt(unsigned char addr);
int __stdcall zlg500_CloseAntenna(unsigned char addr,unsigned char time);

/////////////////////////////////////////////////////////////////////////

int __stdcall zlg500_SelCards(unsigned char addr,unsigned long selcardnr,
							  unsigned long *cardnrs,unsigned char &carnumbers);
int __stdcall zlg500_ReadBlockVal(unsigned char addr,unsigned char blocknr,
								  long &blockval);
int __stdcall zlg500_WriteBlockVal(unsigned char addr,unsigned char blocknr,
								   long blockval);
int __stdcall zlg500_ChangePwd(unsigned char addr,unsigned char sectornr,
							   unsigned char keytype,unsigned char *pwd);

/////////////////////////////////////////////////////////////////////////

int __stdcall zlg500_ReadAddr(unsigned char &devicenrs,unsigned char *deviceaddr);
int __stdcall zlg500_SetParameter(unsigned char addr,unsigned char parameter);
int __stdcall zlg500_ReadParameter(unsigned char addr,unsigned char &parameter);
int __stdcall zlg500_SetControl(unsigned char addr,
								unsigned char controltype,unsigned char acttime,
								unsigned char halttime,unsigned char actlen);

//////////////////////////////////////////////////////////////////////////
unsigned char __stdcall zlg500_GetLastErr();
short int __stdcall zlg500_init(int nport=1, int nbaud=9600);
void __stdcall zlg500_exit(void);

⌨️ 快捷键说明

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