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

📄 command.h

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 H
字号:

#ifndef	COMMAND_H
#define	COMMAND_H

/*
// PACKAGE:
 STX - LEN1 - LEN2 - CMDTARGET - CMDCODE - UDP - ETX - LRC
 for commands with fixed length and same target, we can send 
 multi-command in one command package.
// STX LEN CMD1 CMDDATA1 CMD2 CMDDATA2 ... ETX LRC
// in this case, once a command has been excuted, a result 
// will be sent to the host.
*/

//CMDTARGET
#ifndef     IC_TYPE
#define     IC_TYPE
#define     IC_SAM1         0
#define     IC_SAM2         1
#define     IC_SAM3         2
#define     IC_SAMMAX       2   // the last sam card
#define     IC_USER         3
#define     IC_M1           10  // M1卡
#define     IC_MPRO         11  // Mpro卡(特指射频接口)
#define     MCU             20  // 单片机
#endif


//########################################################################################
// MCU
#define     CMD_EJECTCARD   0   // UDP: NULL
#define     CMD_SETRFRXGAIN 1   // UDP: RECEIVE GAIN, 1 BYTE, (0 ~ 3, 0 FOR MIN AND 3 FOR MAX)
#define     CMD_SETMODE     2   // UDP: MODE, one byte, defined follow
#define     CMD_GETVER      3   // UDP: NULL
#define     CMD_GETSYSINFO  4   // UDP: NULL
#define     CMD_SYSRESET    5   // UDP: NULL
#define     CMD_TESTCARD    6   // UDP: NULL
#define     CMD_SETICCBRATE 7   // UDP: ETU(0: 9600, 1: 38400, 2: 19200, 3: ICC-9600)
#define     CMD_USEDEBUG    8   // UDP: USEDEBUG(0 for not use, 1 for use)
#define     CMD_BEEP        9   // UDP: beeptime(ms)*2BYTES(lsb 1st)
#define     CMD_INV_PACK    10  // UDP: 0: normal pack, 1: inv pack
#define     CMD_RFRESET     11  // UDP: NULL, return: SUCCESS/NOT
#define     CMD_GETHDINFO   12  // UDP: NULL, return: HDINFO
#define     CMD_GETMODE     13  // UDP: NULL, return: MODE, see setmode command
#define     CMD_SETTOCRF    14  // UDP: time, 1 means 0.1 sec. set time of comfirm a rfcard
#define     CMD_CONNECT     0xEF
#define     CMD_STARTISP    0x5a
///mode for mcu, = one or more of the following value OR tegather
#define     AUTO_SEARCH_RFCARD      0x01
#define     BEEP_ON_CARD_INOUT      0x02
#define     NOTIFY_ON_CARD_INOUT    0x04    
#define     OFTEN_RESET_RF_IC       0x08    // reset rf ic once an hour when idle


//########################################################################################
// SMARTCARD / MPROCARD
#define     CMD_RESET           0   // reset sam and get card reset info, UDP: SAMID
#define     CMD_PACKEDCMD       1   // UDP: CLA + INS + P1 + P2 + [[LC + DATA(LC BYTES)] + LE]

#define     CMD_SYNC_RESET      2
#define     CMD_SYNC_START      3
#define     CMD_SYNC_STOP       4
#define     CMD_SYNC_PUTCHAR    5
#define     CMD_SYNC_GETCHAR    6
#define     CMD_SYNC_WR         7
#define     CMD_SYNC_POLL_ACK   8

#define     CMD_SET_CARD_TYPE   0x7F // set card type

#define     CMD_153_WR_EEPROM   0x6F // write eeprom
#define     CMD_153_RD_EEPROM   0x6E // read eeprom
#define     CMD_153_VRF_PSWD    0x6D // verify password
#define     CMD_153_INIT_AUTH   0x6C // initialization authentication
#define     CMD_153_VRF_AUTH    0x6B // verify athentication
#define     CMD_153_WR_FUSE     0x6A // write fuse
#define     CMD_153_RD_FUSE     0x69 // read fuse

/*
#define     CMD_GET_ISAM_KEY    2   //UDP: SAM card SN--4 byte
#define     CMD_INIT_POS        4
#define     CMD_DO_POS          5
*/

//########################################################################################
// MEMERYCARD
//#define     CMD_RESET       0

//########################################################################################
// M1
#define     CMD_GETSNR      0   // UDP: NULL
#define     CMD_AUTH        1   // UDP: SECTOR + AUTHFLAG + KEYAB(6 BYTES), AUTHFLAG: 0: A, OTHER: B
#define     CMD_READ        2   // UDP: SECTOR + BLOCK
#define     CMD_WRITE       3   // UDP: SECTOR + BLOCK + DATA(16 BYTES)
#define     CMD_DECEP       4   // UDP: SECTOR + BLOCK + BAKBLOCK + eptype(0: lsb first) + value(4 bytes)
#define     CMD_INCEP       5   // UDP: SECTOR + BLOCK + BAKBLOCK + eptype(0: lsb first) + value(4 bytes)
#define     CMD_RDEP        6   // UDP: SECTOR + BLOCK + BAKBLOCK + eptype(0: lsb first)
#define     CMD_WREP        7   // UDP: SECTOR + BLOCK + BAKBLOCK + eptype(0: lsb first) + value(4 bytes)
#define     CMD_LDMKEY      8   // UDP: SECTOR1 + A/BFLAG1 + KEY1 + ... SECTORn + FLAGn + KEYn
#define     CMD_LDKEY       11  // UDP: SECTOR1 + A/BFLAG1 + KEY1 + ... SECTORn + FLAGn + KEYn
                                // n(max) = 16;
// 以下命令使用philips的加减钱包命令
#define     CMD_PDECEP      9   // UDP: SECTOR + BLOCK + BAKBLOCK + eptype(0: lsb first) + value(4 bytes, msb first)
#define     CMD_PINCEP      10  // UDP: SECTOR + BLOCK + BAKBLOCK + eptype(0: lsb first) + value(4 bytes, msb first)
// 070207新增块复制命令
#define     CMD_BLOCKCOPY   12  // UDP: SECTOR + SRCBLOCK + DESTBLOCK

#define     ALLBLOCK	    0xFF
// 读取的数字以8086的格式排列,低位在前,高位在后

#ifndef     MI_ERRCODE
#define     MI_ERRCODE
#define     MI_OK                   0                  /*        正确                 */
#define     MI_NOTAGERR             1                  /*        无卡                 */
#define     MI_CRCERR               2                  /*        CRC校验错误          */
#define     MI_AUTHERR              3                  /*        认证错               */
#define     MI_PARITYERR            4                  /*        奇偶校验错           */
#define     MI_CODEERR              5                  /*        给卡的命令代码错     */
#define     MI_SERNRERR             6                  /*        卡序列号错           */
#define     MI_KEYERR               7                  /*        密钥错               */
#define     MI_NOTAUTHERR           8                  /*        没有认证             */
#define     MI_BITCOUNTERR          9                  /*        位计数错             */
#define     MI_BYTECOUNTERR         10                 /*        字节计数错           */
#define     MI_WRITEERR             11                 /*        写错误               */
#define     MI_VALERR               12                 /*        值错误               */
#define     MI_OVFLERR              13                 /*        FIFO溢出             */
#define     MI_FRAMINGERR           14                 /*        桢错误               */
#define     MI_UNKNOWN_COMMAND      15                 /*        不支持的命令         */
#define     MI_COLLERR              16                 /*        卡冲突               */
#define     MI_RESETERR             17                 /*        复位错               */
#define     MI_INTERFACEERR         18                 /*        接口错               */
#define     MI_ACCESSTIMEOUT        19                 /*        操作超时             */
#define     MI_NY_IMPLEMENTED       20                 /*        其他错误             */
#define     MI_EPBAKERR             21                 /*        写钱包备份错误       */
#endif

//#####################################################################//
// 返回信息
// onsuccess:       stx - len1 - len2 - result(=success) - data - [sw for smartcard] - etx - lrc
// onfail:          stx - len1 - len2 - result(=fail) - [cmd_return_value] - etx - lrc
// on card in/out:  stx - len1 - len2 - HASCARD - 行程开关状态 - 射频状态 - etx - lrc
//                  其中”行程开关状态“和”射频状态“:1表示有,0表示无。
#define     SUCCESS     0
#define     FAIL        1
#define     ERRORCMD    2
#define     ERRORCMDLEN 3
#define     HASCARD     0xff


#endif

⌨️ 快捷键说明

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