📄 mffc632.c
字号:
else if((resp[1] == 1) && (resp[2] == 0x10)) status = TI_Block_notexist;
else if((resp[1] == 1) && (resp[2] == 0x14)) status = TI_Block_lockunsucess;
else if((resp[1] == 1) && (resp[2] == 0x01)) status = TI_Command_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x02)) status = TI_Commandformat_err;
else if((resp[1] == 1) && (resp[2] == 0x03)) status = TI_Option_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x0f)) status = TI_Unkown_err;
else status = TI_Revdata_Err;
}
}
return status;
}
/////////////////////////////////////////////////////////////////////
// ISO15693 Select
/////////////////////////////////////////////////////////////////////
char ISO15693_Select (unsigned char flags,
unsigned char *uid,
unsigned char *resp)
{
unsigned char idata status;
unsigned char idata txdatalength;
unsigned char idata txbuffer[10];
txbuffer[0] = flags | 0x22;
txbuffer[1] = ISO15693_SELECT;
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
status = ISO15693_Transceive(txbuffer, txdatalength, resp);
if (status == TI_OK)
{
if((resp[0] == 1) && (resp[1] == 0))
{
status = TI_NO_ERR;
}
else
status = TI_Revdata_Err;
}
return status;
}
/////////////////////////////////////////////////////////////////////
// ISO15693 Get nultiple Block security status
/////////////////////////////////////////////////////////////////////
char ISO15693_Get_Multiple_Block_Security(unsigned char flags,
unsigned char *uid,
unsigned char blnr,
unsigned char nbl,
unsigned char *resp)
{
unsigned char idata status;
unsigned char idata txdatalength;
unsigned char idata txbuffer[12];
if(nbl)
{
nbl--;
}
if(nbl < 0) return(I1_WRONGPARAM);
txbuffer[0] = flags | 0x02;
txbuffer[1] = ISO15693_GET_MULTIPLE_BLOCK_SECURITY;
if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag
// request flags & 0x10 - Selectflag request
{
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
}
else
txdatalength = 2;
txbuffer[txdatalength] = blnr;
txdatalength++;
txbuffer[txdatalength] = nbl;
txdatalength += 1;
status = ISO15693_Transceive(txbuffer, txdatalength, resp);
if (status == TI_OK)
{
if(resp[0] != 2)
{
status = TI_NO_ERR;
}
else
{
if(resp[2] <= 1) status = TI_NO_ERR;
// if((resp[1] == 1) && (resp[2] == 0x12)) status = TI_Blocklocked;
else if((resp[1] == 1) && (resp[2] == 0x10)) status = TI_Block_notexist;
else if((resp[1] == 1) && (resp[2] == 0x02)) status = TI_Commandformat_err;
// else if((resp[1] == 1) && (resp[2] == 0x03)) status = TI_Option_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x0f)) status = TI_Unkown_err;
// else if((resp[1] == 1) && (resp[2] == 0x01)) status = TI_Command_unsurport;
else status = TI_Revdata_Err;
}
}
// status = TI_NO_ERR;
return status;
}
////////////////////////////////////////////////////////////////////
// ISO15693 Lock AFI
/////////////////////////////////////////////////////////////////////
char ISO15693_Lock_AFI (unsigned char flags,
unsigned char *uid,
unsigned char *resp)
{
unsigned char idata txdatalength, status;
unsigned char idata txbuffer[10];
txbuffer[0] = flags | 0x02;
txbuffer[1] = ISO15693_LOCK_AFI;
if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag
// request flags & 0x10 - Selectflag request
{
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
}
else
txdatalength = 2;
status = ISO15693_Transceive(txbuffer, txdatalength, resp);
if (status == TI_OK)
{
if((resp[0] == 1) && (resp[1] == 0)) status = TI_NO_ERR;
else
{
if((resp[1] == 1) && (resp[2] == 0x11)) status = TI_Blocklocked;
// else if((resp[1] == 1) && (resp[2] == 0x10)) status = TI_Block_notexist;
else if((resp[1] == 1) && (resp[2] == 0x14)) status = TI_Block_lockunsucess;
else if((resp[1] == 1) && (resp[2] == 0x01)) status = TI_Command_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x02)) status = TI_Commandformat_err;
else if((resp[1] == 1) && (resp[2] == 0x03)) status = TI_Option_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x0f)) status = TI_Unkown_err;
else status = TI_Revdata_Err;
}
}
return status;
}
/////////////////////////////////////////////////////////////////////
// ISO15693 Reset To Ready
/////////////////////////////////////////////////////////////////////
char ISO15693_Reset_To_Ready (unsigned char flags,
unsigned char *uid,
unsigned char *resp)
{
unsigned char idata txdatalength, status;
unsigned char idata txbuffer[10];
txbuffer[0] = flags | 0x02;
txbuffer[1]= ISO15693_RESET_TO_READY;
if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag
// request flags & 0x10 - Selectflag request
{
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
}
else
txdatalength = 2;
status = ISO15693_Transceive(txbuffer, txdatalength, resp);
if (status == TI_OK)
{
if((resp[0] == 1) && (resp[1] == 0)) status = TI_NO_ERR;
else
{
// if((resp[1] == 1) && (resp[2] == 0x11)) status = TI_Blocklocked;
// else if((resp[1] == 1) && (resp[2] == 0x10)) status = TI_Block_notexist;
// else if((resp[1] == 1) && (resp[2] == 0x14)) status = TI_Block_lockunsucess;
if((resp[1] == 1) && (resp[2] == 0x01)) status = TI_Command_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x02)) status = TI_Commandformat_err;
// else if((resp[1] == 1) && (resp[2] == 0x03)) status = TI_Option_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x0f)) status = TI_Unkown_err;
else status = TI_Revdata_Err;
}
}
return status;
}
/////////////////////////////////////////////////////////////////////
// ISO15693 Write AFI
/////////////////////////////////////////////////////////////////////
char ISO15693_Write_AFI (unsigned char flags,
unsigned char *uid,
unsigned char AFI,
unsigned char *resp)
{
unsigned char idata txdatalength, status;
unsigned char idata txbuffer[11];
txbuffer[0] = flags | 0x02;
txbuffer[1] = ISO15693_WRITE_AFI;
if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag
// request flags & 0x10 - Selectflag request
{
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
}
else
txdatalength = 2;
txbuffer[txdatalength] = AFI;
txdatalength += 1;
status = ISO15693_Transceive(txbuffer, txdatalength,resp);
if (status == TI_OK)
{
if((resp[0] == 1) && (resp[1] == 0)) status = TI_NO_ERR;
else
{
if((resp[1] == 1) && (resp[2] == 0x12)) status = TI_Blocklocked;
// else if((resp[1] == 1) && (resp[2] == 0x10)) status = TI_Block_notexist;
// else if((resp[1] == 1) && (resp[2] == 0x14)) status = TI_Block_lockunsucess;
else if((resp[1] == 1) && (resp[2] == 0x01)) status = TI_Command_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x02)) status = TI_Commandformat_err;
else if((resp[1] == 1) && (resp[2] == 0x03)) status = TI_Option_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x0f)) status = TI_Unkown_err;
else status = TI_Revdata_Err;
}
// status = TI_NO_ERR;
}
return status;
}
/////////////////////////////////////////////////////////////////////
// ISO15693 Stay Quiet
/////////////////////////////////////////////////////////////////////
char ISO15693_Stay_Quiet (unsigned char flags,
unsigned char *uid,
unsigned char *resp)
{
unsigned char idata status,txdatalength;
unsigned char idata txbuffer[10];
txbuffer[0] = flags | 0x22;
txbuffer[1] = ISO15693_STAY_QUIET;
if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag
// request flags & 0x10 - Selectflag request
{
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
}
else
txdatalength = 2;
status = ISO15693_Transceive(txbuffer, txdatalength,resp);
if (status == I2_NO_TAG) status = TI_NO_ERR;
return status;
}
/////////////////////////////////////////////////////////////////////
// ISO15693 Write DSFID
/////////////////////////////////////////////////////////////////////
char ISO15693_Write_DSFID (unsigned char flags,
unsigned char *uid,
unsigned char DSFID,
unsigned char *resp)
{
unsigned char idata txdatalength, status;
unsigned char idata txbuffer[11];
txbuffer[0] = flags | 0x02;
txbuffer[1] = ISO15693_WRITE_DSFID;
if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag
// request flags & 0x10 - Selectflag request
{
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
}
else
txdatalength = 2;
txbuffer[txdatalength] = DSFID;
txdatalength += 1;
status = ISO15693_Transceive(txbuffer, txdatalength, resp);
if (status == TI_OK)
{
if((resp[0] == 1) && (resp[1] == 0)) status = TI_NO_ERR;
else
{
if((resp[1] == 1) && (resp[2] == 0x12)) status = TI_Blocklocked;
// else if((resp[1] == 1) && (resp[2] == 0x10)) status = TI_Block_notexist;
// else if((resp[1] == 1) && (resp[2] == 0x14)) status = TI_Block_lockunsucess;
else if((resp[1] == 1) && (resp[2] == 0x01)) status = TI_Command_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x02)) status = TI_Commandformat_err;
else if((resp[1] == 1) && (resp[2] == 0x03)) status = TI_Option_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x0f)) status = TI_Unkown_err;
else status = TI_Revdata_Err;
}
}
return status;
}
/////////////////////////////////////////////////////////////////////
// ISO15693 Lock DSFID
/////////////////////////////////////////////////////////////////////
char ISO15693_Lock_DSFID (unsigned char flags,
unsigned char *uid,
unsigned char *resp)
{
unsigned char idata txdatalength, status;
unsigned char idata txbuffer[10];
txbuffer[0] = flags | 0x02;
txbuffer[1] = ISO15693_LOCK_DSFID;
if ((flags & 0x20) && !(flags & 0x10)) // flags & 0x20 - Addressflag
// request flags & 0x10 - Selectflag request
{
for(txdatalength=0;txdatalength<8;txdatalength++)
{
txbuffer[txdatalength+2] = *uid;
uid++;
}
txdatalength = 10;
}
else
txdatalength = 2;
status = ISO15693_Transceive(txbuffer, txdatalength, resp);
if (status == TI_OK)
{
if((resp[0] == 1) && (resp[1] == 0)) status = TI_NO_ERR;
else
{
if((resp[1] == 1) && (resp[2] == 0x11)) status = TI_Blocklocked;
// else if((resp[1] == 1) && (resp[2] == 0x10)) status = TI_Block_notexist;
// else if((resp[1] == 1) && (resp[2] == 0x14)) status = TI_Block_lockunsucess;
else if((resp[1] == 1) && (resp[2] == 0x01)) status = TI_Command_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x02)) status = TI_Commandformat_err;
else if((resp[1] == 1) && (resp[2] == 0x03)) status = TI_Option_unsurport;
else if((resp[1] == 1) && (resp[2] == 0x0f)) status = TI_Unkown_err;
else status = TI_Revdata_Err;
}
}
return status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -