📄 mifare530.h
字号:
#define TYPE_A_ISO14443 0
#define TYPE_B_ISO14443 1
#define READER_ERR_BASE_START 0
#define MI_OK 0
#define MI_CHK_OK 0
#define MI_CRC_ZERO 0
// ICODE1 Error Codes
#define I1_OK 0
#define I1_NO_ERR 0
#define MI_CRC_NOTZERO 1
#define MI_NOTAGERR (-1)
#define MI_CHK_FAILED (-1)
#define MI_CRCERR (-2)
#define MI_CHK_COMPERR (-2)
#define MI_EMPTY (-3)
#define MI_AUTHERR (-4)
#define MI_PARITYERR (-5)
#define MI_CODEERR (-6)
#define MI_SERNRERR (-8)
#define MI_KEYERR (-9)
#define MI_NOTAUTHERR (-10)
#define MI_BITCOUNTERR (-11)
#define MI_BYTECOUNTERR (-12)
#define MI_IDLE (-13)
#define MI_TRANSERR (-14)
#define MI_WRITEERR (-15)
#define MI_INCRERR (-16)
#define MI_DECRERR (-17)
#define MI_READERR (-18)
#define MI_OVFLERR (-19)
#define MI_POLLING (-20)
#define MI_FRAMINGERR (-21)
#define MI_ACCESSERR (-22)
#define MI_UNKNOWN_COMMAND (-23)
#define MI_COLLERR (-24)
#define MI_RESETERR (-25)
#define MI_INITERR (-25)
#define MI_INTERFACEERR (-26)
#define MI_ACCESSTIMEOUT (-27)
#define MI_NOBITWISEANTICOLL (-28)
#define MI_QUIT (-30)
#define MI_CODINGERR (-31)
#define MI_SENDBYTENR (-51)
#define MI_CASCLEVEX (-52)
#define MI_SENDBUF_OVERFLOW (-53)
#define MI_BAUDRATE_NOT_SUPPORTED (-54)
#define MI_SAME_BAUDRATE_REQUIRED (-55)
#define MI_ERROR_CARD_TYPE (-56)
#define MI_WRITE_BLOCK_ERROR (-57)
#define MI_WRONG_PARAMETER_VALUE (-60)
// ICODE1 Error Codes
#define I1_WRONGPARAM (-61)
#define I1_NYIMPLEMENTED (-62)
#define I1_TSREADY (-63)
#define I1_TIMEOUT (-70)
#define I1_NOWRITE (-71)
#define I1_NOHALT (-72)
#define I1_MISS_ANTICOLL (-73)
#define I1_COMM_ABORT (-82)
#define MI_BREAK (-99)
#define MI_NY_IMPLEMENTED (-100)
#define MI_NO_MFRC (-101)
#define MI_MFRC_NOTAUTH (-102)
#define MI_WRONG_DES_MODE (-103)
#define MI_HOST_AUTH_FAILED (-104)
#define MI_WRONG_LOAD_MODE (-106)
#define MI_WRONG_DESKEY (-107)
#define MI_MKLOAD_FAILED (-108)
#define MI_FIFOERR (-109)
#define MI_WRONG_ADDR (-110)
#define MI_DESKEYLOAD_FAILED (-111)
#define MI_WRONG_SEL_CNT (-114)
#define MI_WRONG_TEST_MODE (-117)
#define MI_TEST_FAILED (-118)
#define MI_TOC_ERROR (-119)
#define MI_COMM_ABORT (-120)
#define MI_INVALID_BASE (-121)
#define MI_MFRC_RESET (-122)
#define MI_WRONG_VALUE (-123)
#define MI_VALERR (-124)
#define MI_WRONG_MAC_TOKEN (-149)
#define MI_WRONG_TOKEN (-150)
#define MI_NO_VALUE (-151)
#define MI_MFRC150 (-152)
#define MI_MFRC170 (-153)
#define MI_WRONG_BASEADDR (-180)
#define MI_NO_ERROR_TEXT_AVAIL (-199)
#define MI_DRIVER_FAILURE (-254)
#define MI_INTERFACE_FAILURE (-255)
#define MI_PROTOCOL_FAILURE (-256)
#define MI_SERERR (-260)
#define MI_CALLOPEN (-261)
#define MI_RESERVED_BUFFER_OVERFLOW (-58)
#define MI_RECBUF_OVERFLOW MI_RESERVED_BUFFER_OVERFLOW
#define READER_ERR_BASE_END (-999)
#define INIT_AS_TYPEA 0
#define INIT_AS_TYPEB_ASK 1
#define INIT_AS_TYPEB_STD 2
#define INIT_AS_TYPEB_MOT 3
extern unsigned char New_PICCsnr[]; //The CARD Serial Number卡片序列号.(4bytes)
extern char Mf500KeyWriteToEeprom(
unsigned char key_type,
unsigned char sector,
unsigned char *uncoded_keys);
extern unsigned char ResetAllCard(void);
extern char SwitchRfOff(void);
extern char InitMC530(short);
extern char CardAccess(
unsigned char auth_mode,
unsigned char WR_mode,
unsigned char sector,
unsigned char Block,
unsigned char* rdata,
unsigned char* wdata);
extern char CardAccessMultiBlocks(
unsigned char auth_mode,
unsigned char WR_mode,
unsigned char sector,
unsigned char Block,
unsigned char BlockCnt,
unsigned char* rdata,
unsigned char* wdata);
extern char CardTrailerWrite(
unsigned char auth_mode,
unsigned char sector,
unsigned char* KEYA,
unsigned char* KEYB,
unsigned char C1x0_3,
unsigned char C2x0_3,
unsigned char C3x0_3);
extern char CardValue(
unsigned char auth_mode,
unsigned char dd_mode,
unsigned char sector,
unsigned char Block,
unsigned long value);
extern void MC530Off(void);
#define PICC_WriteBlock 1
#define PICC_ReadBlock 0
#define NULL 0
#define PICC_REQIDL 0x26 //!< request idle
#define PICC_REQALL 0x52 //!< request all
#define PICC_ANTICOLL1 0x93 //!< anticollision level 1 106 kBaud
#define PICC_ANTICOLL11 0x92 //!< anticollision level 1 212 kBaud
#define PICC_ANTICOLL12 0x94 //!< anticollision level 1 424 kBaud
#define PICC_ANTICOLL13 0x98 //!< anticollision level 1 848 kBaud
#define PICC_ANTICOLL2 0x95 //!< anticollision level 2
#define PICC_ANTICOLL3 0x97 //!< anticollision level 3
#define PICC_AUTHENT1A 0x60 //!< authentication(证明,鉴定) using key A
#define PICC_AUTHENT1B 0x61 //!< authentication(证明,鉴定) using key B
#define PICC_READ16 0x30 //!< read 16 byte block
#define PICC_WRITE16 0xA0 //!< write 16 byte block
#define PICC_WRITE4 0xA2 //!< write 4 byte block
#define PICC_DECREMENT 0xC0 //!< decrement value
#define PICC_INCREMENT 0xC1 //!< increment value
#define PICC_RESTORE 0xC2 //!< restore command code
#define PICC_TRANSFER 0xB0 //!< transfer command code
#define PICC_HALT 0x50 //!< halt
extern char CardCTSReqT( void );
extern char CardCTSEnableModification( void );
extern char CardCTSRead( unsigned char blocknum, unsigned char* rdata);
extern char CardCTSWrite( unsigned char blocknum, unsigned char* rdata);
extern char CardCTSErase( unsigned char blocknum);
extern char CardCTSDeactivate( void );
extern char CardTypeARequest(
unsigned char req_code, // request code ALL = 0x52
// or IDLE = 0x26
unsigned char *atq); // answer to request(ATQ)
extern char CardTypeAAnticoll (
unsigned char level,
unsigned char *serial_number);
extern char CardTypeASelect(
unsigned char level,
unsigned char *serial_number,
unsigned char *ATS);
#define CardTypeAAnticollLevel1(s) CardTypeAAnticoll(PICC_ANTICOLL1,(s))
#define CardTypeASelectLevel1(s,a) CardTypeASelect(PICC_ANTICOLL1,(s),(a))
extern char CardMFCAuthKey(
unsigned char auth_mode,
unsigned char *snr,
unsigned char *keys,
unsigned char block);
extern char CardMFCRead16Bytes(
unsigned char block_addr,
unsigned char* data);
extern char CardMFCWrite16Bytes(
unsigned char block_addr,
unsigned char *data);
extern char CardMFCWrite4Bytes(
unsigned char block_addr,
unsigned char *data);
extern char CardMFCValueWithTransfer(
unsigned char dd_mode,
unsigned char from_block,
unsigned char to_block,
unsigned long lvalue);
extern char CardMFCValueDebit(
unsigned char dd_mode,
unsigned char block,
unsigned long lvalue);
extern char CardTypeAHalt(void);
extern char CardTypeAExchangeBlock(unsigned char *send_data,
unsigned short send_bytelen,
unsigned char *rec_data,
unsigned short *rec_bytelen,
unsigned char append_crc,
unsigned long timeout );
extern char CardTypeBExchangeBlock(unsigned char *send_data,
unsigned short send_bytelen,
unsigned char *rec_data,
unsigned short *rec_bytelen,
unsigned long timeout );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -