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

📄 s3c2440_iccard.h

📁 一个有关挂载U盘
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef	S3C2440_ICCARD_H	/*S3C2440_ICCARD_H*/
#define	S3C2440_ICCARD_H

// sikinzen: 标准定义的命令返回值
#define RES_SUCC              		0x9000
#define SELECT_FILE_INVALID	0x6283
#define STATUS_NOT_CHANGE	0x6400
#define FAIL_WRITE_EEPROM 	0x6581
#define LC_ERROR				0x6700
#define STATUS_INVALID		0x6901
#define FILETYPE_NOT_MATCH	0x6981
#define SAFE_STATUS_NOT_MEET	0x6982
#define KEY_LOCK			0x6983
#define RANDOM_INVALID		0x6984
#define COND_NOT_MEET		0x6985
#define MESG_DATA_ERROR		0x6988
#define FILE_EXIST				0x6a80
#define FUNCTION_NOT_SUPPORT  	0x6a81
#define NOT_FIND_FILE		0x6a82
#define NOT_FIND_RECORD 	0x6a83
#define MEM_NOT_ENOUGH		0x6a84
#define P1_P2_ERROR 		  	0x6a86
#define PARA_INVALID 		0x6b00
#define CMD_INVALID 		  	0x6d00
#define CLA_INVALID			0x6e00
#define ERROR_NOT_DEFINE	0x6f00
#define PERMANENT_LOCK		0x9303
#define MONEY_INVALID		0x9401
#define KEY_INDEX_NOT_SUPPORT		0x9403

// sikinzen: 自定义的错误
#define ERR_RECORD_LEN		0xFFFC
#define ERR_SHORT_INDEX		0xFFFB
#define ERR_CMD_RESPOND	0xFFFA
#define ERR_ICCARD_PULL_OUT	0xFFF9
#define ERR_WRONG_CARD_TYPE	0xFFF8
#define ERR_ICCARD_LOCK		0xFFF7
#define ERR_UNKNOWN_CARD	0xFFF6
#define ERR_BUF_EMPTY		0xFFF5
#define ERR_TIMEOUT			0xFFF4
#define ERR_NOT_RET_CMD		0xFFF3
#define ERR_ACCESS_MODE		0xFFF2

/******************    工作卡的头文件 *******************/
typedef struct GZ_HEAD
{	
	char CardType[2];	//类型:2B,二进制数据,标识当前卡为流通卡 (NP)
	char CardNum[8];		//卡号,8B,二进制数据;
	char AreaCode[8];	//区码,8B,ASCII码,标识卡分发地的区划编码,用于认证
	char name[8];		//姓名,ASCII数据,中文用GB2312表示
	char passwd[8];
	char WorkArea[40];		// 机构
	char WorkAreaID[40];	// 机构ID
	char AreaName[4];	// 区划名称
	char AreaID[2]; // 区划ID
	char CountyID[2]; //县级ID
	char ProvinceID[2]; //省级ID
	char duty[2]; //职责
} gz_info;

/******************    流通卡的头文件 *******************/
typedef struct LT_HEAD
{
	char ManufacturerId[2];	//卡商:2B,二进制数据,标识卡的供应商
	char CardType[2];	//类型:2B,二进制数据,标识当前卡为流通卡 (NP)
	char CardNum[8];		//卡号,8B,二进制数据;
	char AreaCode[8];	//区码,8B,ASCII码,标识卡分发地的区划编码,用于认证
	char name[8];		//姓名,经营范围,发证机关:ASCII数据,中文用GB2312表示
	char address[40];
	char WorkArea[20];
	char MasterCompany[30];
	char youxiaoqi[3];	//有效期:年月日,二进制格式,如0x0A,0x02,0x03,表示2010年2月3日
	unsigned short MaxIndexRecord;//记录总数,
	unsigned short FileNum;	//文件数,2字节数字型,采用大端格式存储。
	unsigned short RecordPerFile;	//每文件记录数,2字节数字型,采用大端格式存储。
	unsigned short RecordLen;		//每记录长度,2字节数字型,采用大端格式存储。
	unsigned short StartRecordLen;	//记录状态位长度,2字节数字型,采用大端格式存储。
	unsigned short CardNumLen;	//证号长度,2字节数字型,采用大端格式存储。
	unsigned short TwoDimensionCodeLen;	//二维码长度,2字节数字型,采用大端格式存储。
	unsigned short KeyEdition;		//密钥版本:00和01密钥的版本,二进制数据,从0x0001开始
	char			Reserve[8];	//预留位[8B]
} lt_head;

/******************    流通卡的索引文件 *******************/
typedef struct LT_INDEX
{	
	char ID[16];	// 证号
	unsigned short RecordID;	//记录号
} lt_index;

/******************    流通卡的数据文件 *******************/
typedef struct LT_RECORD
{
	char RecordStatus[2];	// 记录状态位
	char ID[16];	// 证号
	char TwoDimensionCode[28];	//二维码数据
} lt_record;


/******************    规模场卡的头文件 *******************/
typedef struct GM_HEAD
{
	char ManufacturerId[2];
	char CardType[2];
	char CardNum[8];
	char AreaCode[8];
	char name[8];
	char company[40];
	char WorkArea[20];
	char MasterCompany[30];
	unsigned int  CunLanLiang;
	unsigned int  ChuLanLiang;
	char youxiaoqi[3];
	unsigned short MaxIndexRecord;
	unsigned short ValidIndexRecord;
	unsigned short RecordLen;
	unsigned short RecordFieldLen;
	unsigned short StartRecordLen;
	unsigned short EndRecordLen;
	unsigned short StateRecordLen;
	unsigned short EarLen;
	unsigned short RecordMaxNum;
	unsigned short KeyEdition;
	char			Reserve[8];
} gm_head;

/******************    规模场卡的索引文件 *******************/
typedef struct GM_INDEX
{
	unsigned short Sn;	// 序号
	unsigned short QuanHao; //圈号
	unsigned short StartRecord;	//起始记录号
	unsigned short EndRecord;	//结束记录号
	char RecordStatus[2];	// 记录状态位
} gm_index;

/******************    规模场卡的数据文件 *******************/
typedef struct GM_RECORD
{
	char EarID[20];	//耳标号
} gm_record;

/******************    散养卡的头文件 *******************/
typedef struct SY_HEAD
{
	char ManufacturerId[2];
	char CardType[2];
	char CardNum[8];
	char AreaCode[8];
	char village[20];
	char town[20];
	unsigned int  CunLanLiang;
	unsigned int  ChuLanLiang;
	unsigned short MaxIndexRecord;
	unsigned short ValidIndexRecord;
	unsigned short RecordPerFile;
	unsigned short MasterRecordFieldLen;
	unsigned short StartRecordLen;
	unsigned short EndRecordLen;
	unsigned short StateRecordLen;
	unsigned short EarLen;
	unsigned short RecordMaxNum;
	unsigned short KeyEdition;
	char			Reserve[8];
} sy_head;

/******************   散养卡的索引文件 *******************/
typedef struct SY_INDEX
{
	unsigned short Sn;	// 序号
	char Master[8]; //畜主
	unsigned short StartRecord;	//起始记录号
	unsigned short EndRecord;	//结束记录号
	char RecordStatus[2];	// 记录状态位
}sy_index;

/******************   散养卡的数据文件 *******************/
typedef struct SY_RECORD
{
	char EarID[20];	//耳标号
} sy_record;

/******************   函数声明  *******************/
/********************************************************************
 * 原形:int IccardGet_LT_Head(lt_head *lt_head_info);
 * 功能:将流通卡的头文件信息读到lt_head_info 指向的结构体中
 * 参数:lt_head_info,指向存储信息的结构体
 * 返回值:    	若成功则返回读到的字节数;
 *				若失败则返回错误码的负值.错误码见本头文件
 * 说明:
 ********************************************************************/
int IccardGet_LT_Head(lt_head *lt_head_info);

/********************************************************************
 * 原形:int IccardGet_GM_Head(gm_head *gm_head_info);
 * 功能:将规模卡的头文件信息读到gm_head_info 指向的结构体中
 * 参数:gm_head_info,指向存储信息的结构体
 * 返回值:    	若成功则返回读到的字节数;
 *				若失败则返回错误码的负值.错误码见本头文件
 * 说明:
 ********************************************************************/
int IccardGet_GM_Head(gm_head *gm_head_info);

/********************************************************************
 * 原形:int IccardGet_SY_Head(sy_head *sy_head_info);
 * 功能:将散养卡的头文件信息读到sy_head_info 指向的结构体中
 * 参数:sy_head_info,指向存储信息的结构体
 * 返回值:    	若成功则返回读到的字节数;

⌨️ 快捷键说明

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