📄 mifareproexcute.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 + -