📄 anticollselect.c
字号:
/*************************************************
Function: AnticollSelect
Description:
Anticollision loop and selecte a card to operate
Parameter:
bcnt bit counter of known UID
snr buffer to store the card UID
Return:
short status of implement
**************************************************/
short AnticollSelect(unsigned char bcnt, unsigned char *snr)
{
unsigned char i;
short status=STATUS_SUCCESS;
unsigned char length, casc_code, length_in,sak,tmpSnr[12];
length_in = bcnt;
/* do loop for max. cascade level */
for(i=0;i<MAX_CASCADE_LEVELS;i++)
{
if(length_in)
{
if(length_in > SINGLE_UID_LENGTH)
{
length = SINGLE_UID_LENGTH;
length_in -= SINGLE_UID_LENGTH;
}
else
{
length = length_in;
length_in = 0;
}
}
else
{
length = 0;
}
switch(i)
{
case 1: casc_code = SELECT_CASCADE_LEVEL_2;
memcpy(snr, tmpSnr+1,3);
break;
case 2: casc_code = SELECT_CASCADE_LEVEL_3;
break;
default: casc_code = SELECT_CASCADE_LEVEL_1;
break;
}
if(length != SINGLE_UID_LENGTH && status == STATUS_SUCCESS)
/* do anticollission with selected level */
status = CascAnticoll(casc_code,
length,
tmpSnr + i * 4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -