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

📄 mifareproexcute.c

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 C
字号:
#include "MifarePro.h"
#include "includes.h"
#include "COMMAND.H"


//卡片命令执行函数,调用相应的命令处理函数实现其命令功能.


unsigned int MifareProExcute(unsigned char *CmdBuf,unsigned int buflen)
{
    char prostatus;
    char proflag;
	//unsigned char *pcd;
    // unsigned int *len;
	unsigned int ExCmdLen;
    // len=&buflen;
    
	proflag  = CmdBuf[0]; 
   	ExCmdLen = buflen;
	
    //buf[0]是暂时的位置(或者其它位置的标识符),可能是其它的位置.         
    //读取命令格式中的标识符,选择不同的操作函数,可以有很多的操作函数.
    //可以有更多的操作函数,不仅限于这里的函数.



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


    if(CmdBuf[1]&0xFF !=0)
    {
        if(ExCmdLen<=MaxLength)
        {  
            //prostatus = Cmd_PackedProc(CmdBuf,&buflen);                    //注意buflen的大小!
			  prostatus = MProCommand(CmdBuf+2,ExCmdLen,CmdBuf,&buflen,1,11);
            if(prostatus == MI_OK)
            {
                // buflen=*len;
				
				ComputeCrc(CmdBuf+2,buflen-2,CmdBuf+buflen-2,CmdBuf+buflen-1);
				memcpy(CmdBuf,CmdBuf+2,buflen-2);
				buflen = buflen - 2;
                return buflen;
            }
			else
			{
			  CmdBuf[0] = FAIL;
			  return 1;
			}
        }
    }

    else
    {
        if(buflen<=MaxLength)
        {
            prostatus = MProCommand(CmdBuf+2,ExCmdLen,CmdBuf,&buflen,1,11);                     //card reset function
            if(prostatus == MI_OK)
            {
                // buflen=*len;
				
				ComputeCrc(CmdBuf,buflen,CmdBuf+buflen-2,CmdBuf+buflen-1);
               	memcpy(CmdBuf,CmdBuf+2,buflen-2);
                return buflen-2;
            }
			else
			{
			  CmdBuf[0] = FAIL;
			  return 1;
			}
        }
    }
    
    //CmdBuf[0] = FAIL;
    //return 1;

}

⌨️ 快捷键说明

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