📄 mc2005_icc.h
字号:
#ifndef _MC2005_ICC_H
#define _MC2005_ICC_H
/*Card apis*/
#define ICC_POWER_ON 1
#define ICC_POWER_OFF 0
extern short ICC_interface_power(short isOn);
#define ICC_CLOCK_16M 0
#define ICC_CLOCK_8M 1
#define ICC_CLOCK_4M 2
#define ICC_CLOCK_2M 3
#define ICC_VOLTAGE_5 0
#define ICC_VOLTAGE_3 1
#define ICC_VOLTAGE_1_8 2
extern void ICC_deactivate_current_sock(void);
#define ICC_SOCK_MAIN 0
#define ICC_SOCK_SAM 1
#define ICC_SOCK_AUX1 2
#define ICC_SOCK_AUX2 3
extern short ICC_select_sock(short sock_num);
extern short ICC_get_curr_sock(void);
#define ICC_SOCK_CARD_PRESENT 1
#define ICC_SOCK_CARD_ABSENT 0
extern short ICC_sock_check(short sock_num);
// ic card pin descriptions:
#define ICC_PIN_VCC 0
#define ICC_PIN_RST 1
#define ICC_PIN_CLK 2
#define ICC_PIN_C4 3
#define ICC_PIN_GND 4
#define ICC_PIN_C6 5
#define ICC_PIN_IO 6
#define ICC_PIN_C8 7
#define ICC_PIN_READ 0x00000000
#define ICC_PIN_SET 0x00010000
#define ICC_PIN_CLR 0x00020000
#define ICC_PIN_SWITCH_OUT 0x00030000
#define ICC_PIN_SWITCH_IN 0x00040000
typedef struct {
unsigned short delay_unit;
unsigned short IIC_flag;
unsigned short send_length;
unsigned short read_length;
unsigned char * send_buffer;
unsigned char * read_buffer;
} typ_IIC_param_block;
#define ICC_IIC_LSB_1ST 0x10
#define ICC_IIC_WITH_ACK 0x08
#define ICC_IIC_END_NOTACK 0x04
#define ICC_IIC_WITH_STOP 0x02
#define ICC_IIC_WITH_START 0x01
typedef struct {
unsigned int isT1 : 1;
unsigned int isConverted : 1;
unsigned int VccOn : 1;
unsigned int VolIndex : 2;
unsigned int ClkIndex : 3;
unsigned int isSyncCard : 1;
unsigned int PSC32th : 1;
unsigned int CKU : 1;
unsigned char Fi, Di, D, Dividor, PI1, II, N, PI2, WI;
unsigned char IFSI, CWI, BWI;
unsigned short BWT, CWT;
unsigned long WWT;
} typ_cpucard_param;
//for cards which ATR timing is ISO compliant
#define ICC_CPUC_ATR_FLAG_ISO 0
//for cards which ATR timing is EMV compliant
#define ICC_CPUC_ATR_FLAG_EMV 1
//for cards which ATR waiting timing is 6 to 10 times long to ISO, such as WatchData.
#define ICC_CPUC_ATR_FLAG_LONGATR 2
extern short ICC_cpucard_ATR(unsigned char * dbuf,
unsigned char * len,
unsigned short clk_index,
unsigned short vol_index,
unsigned short ATR_FiDi,
unsigned short flags);
extern short ICC_T0_TPDU( short isIn,
short CLA,
short INS,
short P1,
short P2,
short P3,
unsigned char * databuff,
unsigned short * pSW);
extern short ICC_T1_frame( unsigned char * pfrm_send,
unsigned short len_send,
unsigned char * pfrm_rx,
unsigned short * len_rx );
extern short ICC_cpucard_PTS( unsigned char * pPTS_request,
unsigned short len_PTS_request,
unsigned char * pPTS_responce,
unsigned char * len_PTS_responce);
extern short EMV_ISO_PBOC_atr_check(
unsigned char * pBuff,
unsigned char len,
unsigned char isPBOC);
#define EMV_ISO_atr_check(a,b) EMV_ISO_PBOC_atr_check((a),(b),0)
#define PBOC_atr_check(a,b) EMV_ISO_PBOC_atr_check((a),(b),1)
extern short ICC_cpucard_get_param(typ_cpucard_param * pDes);
extern short ICC_cpucard_set_param(typ_cpucard_param * pSrc);
#define ICC_ACTIVITY_INSERT 1
#define ICC_ACTIVITY_WITHDRAW 2
#define ICC_ACTIVITY_NULL 3
extern short ICC_card_activity(short sock_num);
extern short ICC_memcard_pin_session(unsigned long pin_flag);
extern short ICC_memcard_IIC_session(typ_IIC_param_block * picb);
extern short ICC_memcard_IIC_session_standard(typ_IIC_param_block * picb);
extern short ICC_memcard_atr( unsigned char * dbuf,
unsigned char * len,
unsigned short vol_index);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -