📄 rfid_writemenu.c
字号:
if(Target_Tag == 58)
{
if(cPage == 3){endDisplayBlock = 1;}
else{endDisplayBlock = 9;}
}
for(j=startDisplayBlock; j<endDisplayBlock+1; j++)
{
if(j<5)
{
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
cBlockDat[i] = Tag_Get_Block((unsigned char)(j+(unsigned char)(cPage*10)),i);
conv_Char2HexStr2(sBlockDatPtr, cBlockDat[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
lcd_put_fString(3, 14+(j*10), sNumPtr[j]);
lcd_put_String(13, 14+(j*10),sBlockDatPtr);
if(currentPos == BLOCKSEL && j+(unsigned char)(cPage*10) == cBlockSel){lcd_invert_area(2,13+(j*10),8,21+(j*10));}
else if(j+(unsigned char)(cPage*10) == cBlockSel){lcd_invert_area(12+(currentPos*6),13+(j*10),18+(currentPos*6),21+(j*10));}
}
else if(j<10)
{
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
cBlockDat[i] = Tag_Get_Block((unsigned char)(j+(unsigned char)(cPage*10)),i);
conv_Char2HexStr2(sBlockDatPtr, cBlockDat[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
lcd_put_fString(68, 14+((j-5)*10), sNumPtr[j]);
lcd_put_String(78, 14+((j-5)*10),sBlockDatPtr);
if(currentPos == BLOCKSEL && (j+(unsigned char)(cPage*10)) == cBlockSel){lcd_invert_area(67,13+((j-5)*10),73,21+((j-5)*10));}
else if((j+(unsigned char)(cPage*10)) == cBlockSel){lcd_invert_area(77+(currentPos*6),13+((j-5)*10),83+(currentPos*6),21+((j-5)*10));}
}
}
lcd_update(SCRN_TOP,SCRN_BOTTOM);
upDate = 1;
}
// End display
uio_Get();
switch(currentPos){
case BLOCKSEL:
if(cButton == IO_RIGHT){nextPos = BLOCKDAT1;}
else if(cButton == IO_LEFT){;}
else if(cButton == IO_ENTER)
{
ioActive = 0;
if(Target_Tag == 51){wError = x5551_WriteAll(Target_Reader);}
else if(Target_Tag == 57){wError = x5557_WriteAll(Target_Reader);}
else if(Target_Tag == 67){wError = x5567_WriteAll(Target_Reader);}
else if(Target_Tag == 77){wError = x5577_WriteAll(Target_Reader);}
else if(Target_Tag == 70){wError = x5570_WriteAll(Target_Reader);}
else if(Target_Tag == 58){wError = x5558_WriteAll(Target_Reader);}
if(wError == 1){message_1sDisplay(PSTR("Write Successful"));}
else {message_1sDisplay(PSTR("Write Failed"));}
upDate = 0;
ioActive = 1;
}
else if(cButton == IO_UP && cBlockSel > startBlock)
{
cBlockSel--;
if(cBlockSel < 10){cPage = 0;}
else if(cBlockSel < 20){cPage = 1;}
else if(cBlockSel < 30){cPage = 2;}
else if(cBlockSel < 40){cPage = 3;}
upDate = 0;
}
else if(cButton == IO_DOWN && cBlockSel < endBlock)
{
cBlockSel++;
if(cBlockSel > 29){cPage = 3;}
else if(cBlockSel > 19){cPage = 2;}
else if(cBlockSel > 9){cPage = 1;}
else{cPage = 0;}
upDate = 0;
}
break;
case BLOCKDAT1:
case BLOCKDAT3:
case BLOCKDAT5:
case BLOCKDAT7:
if(cButton == IO_RIGHT && currentPos < BLOCKDAT8){nextPos++;}
else if(cButton == IO_LEFT && currentPos > BLOCKDAT1){nextPos--;}
else if(cButton == IO_ENTER){nextPos = BLOCKSEL;}
else if(cButton == IO_UP)
{
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
cBlockDat[i] = Tag_Get_Block(cBlockSel,i);
conv_Char2HexStr2(sBlockDatPtr, cBlockDat[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
cBlockDat[currentPos>>1] += 16;
Tag_Set_Block(&cBlockDat[0], cBlockSel);
upDate = 0;
}
else if(cButton == IO_DOWN)
{
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
cBlockDat[i] = Tag_Get_Block(cBlockSel,i);
conv_Char2HexStr2(sBlockDatPtr, cBlockDat[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
cBlockDat[currentPos>>1] -= 16;
Tag_Set_Block(&cBlockDat[0], cBlockSel);
upDate = 0;
}
break;
case BLOCKDAT2:
case BLOCKDAT4:
case BLOCKDAT6:
case BLOCKDAT8:
if(cButton == IO_RIGHT && currentPos < BLOCKDAT8){nextPos++;}
else if(cButton == IO_LEFT && currentPos > BLOCKDAT1){nextPos--;}
else if(cButton == IO_ENTER){nextPos = BLOCKSEL;}
else if(cButton == IO_UP)
{
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
cBlockDat[i] = Tag_Get_Block(cBlockSel,i);
conv_Char2HexStr2(sBlockDatPtr, cBlockDat[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
i=cBlockDat[currentPos>>1];
i = (i+1)&0x0F;
cBlockDat[currentPos>>1] = ((cBlockDat[currentPos>>1]&0xF0) | i);
Tag_Set_Block(&cBlockDat[0], cBlockSel);
upDate = 0;
}
else if(cButton == IO_DOWN)
{
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
cBlockDat[i] = Tag_Get_Block(cBlockSel,i);
conv_Char2HexStr2(sBlockDatPtr, cBlockDat[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
i=cBlockDat[currentPos>>1];
i = (i-1)&0x0F;
cBlockDat[currentPos>>1] = ((cBlockDat[currentPos>>1]&0xF0) | i);
cBlockDat[currentPos>>1] = (cBlockDat[currentPos>>1] | i);
Tag_Set_Block(&cBlockDat[0], cBlockSel);
upDate = 0;
}
break;
default:
break;
}
if(cButton>0 && cButton<6){uio_Release();}
}
uio_Release();
}
// *******************************************************************************
// Menu that allows the ATA5558 Tag ID blocks to be written
// ******************************************************************************/
void rfid_WriteMenu_x5558TagID(unsigned char Target_Tag, unsigned char Target_Reader)
{
unsigned char i, end, cBlockSel=56;
unsigned char sBlockDat[9] = "00000000";
unsigned char *sBlockDatPtr;
unsigned char cBlockDat[4] = {0};
unsigned char cBlockDat1[4] = {0};
unsigned char cBlockDat2[4] = {0};
unsigned char cBlockDat3[4] = {0};
unsigned char wError = 0;
nextPos = BLOCKSEL;
upDate = 0;
cPage = 0;
for(i=0; i<4; i++)
{
cBlockDat1[i] = Target_Tag_ID[i];
cBlockDat2[i] = Target_Tag_ID[(unsigned char)(4+i)];
cBlockDat3[i] = Target_Tag_ID[(unsigned char)(8+i)];
}
for(i=0; i<4; i++)
{
cBlockDat[i] = cBlockDat1[i];
}
uio_Release();
while(cButton != IO_F1 && cButton != IO_F2 && cButton != IO_F3 && cButton != IO_F4)
{
// Menu display
if(currentPos != nextPos || upDate == 0)
{
currentPos = nextPos;
lcd_clear_area(SCRN_LEFT+1,SCRN_TOP+1,SCRN_RIGHT-1,SCRN_BOTTOM-1);
if(Target_Tag == 30){lcd_put_fString(4, 2, sRFIDTAGPtr[0]);}
else if(Target_Tag == 51){lcd_put_fString(4, 2, sRFIDTAGPtr[1]);}
else if(Target_Tag == 52){lcd_put_fString(4, 2, sRFIDTAGPtr[2]);}
else if(Target_Tag == 57){lcd_put_fString(4, 2, sRFIDTAGPtr[3]);}
else if(Target_Tag == 67){lcd_put_fString(4, 2, sRFIDTAGPtr[4]);}
else if(Target_Tag == 77){lcd_put_fString(4, 2, sRFIDTAGPtr[5]);}
else if(Target_Tag == 70){lcd_put_fString(4, 2, sRFIDTAGPtr[6]);}
else if(Target_Tag == 58){lcd_put_fString(4, 2, sRFIDTAGPtr[7]);}
lcd_put_fString(32, 2, PSTR(" Write Tag ID"));
lcd_horz_line(SCRN_LEFT,SCRN_RIGHT,10);
// Insert more display code here
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
conv_Char2HexStr2(sBlockDatPtr, cBlockDat1[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
end = lcd_put_fString(4,14,PSTR("Block 56:"));
lcd_put_String(end,14, sBlockDatPtr);
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
conv_Char2HexStr2(sBlockDatPtr, cBlockDat2[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
end = lcd_put_fString(4,24,PSTR("Block 57:"));
lcd_put_String(end,24, sBlockDatPtr);
sBlockDatPtr = &sBlockDat[0];
for(i=0; i<4; i++)
{
conv_Char2HexStr2(sBlockDatPtr, cBlockDat3[i]);
sBlockDatPtr += 2;
}
sBlockDatPtr = &sBlockDat[0];
end = lcd_put_fString(4,34,PSTR("Block 58:"));
lcd_put_String(end,34, sBlockDatPtr);
if(currentPos == BLOCKSEL){lcd_invert_area(3,13+((cBlockSel-56)*10),56,21+((cBlockSel-56)*10));}
else{lcd_invert_area(57+(currentPos*6),13+((cBlockSel-56)*10),63+(currentPos*6),21+((cBlockSel-56)*10));}
lcd_update(SCRN_TOP,SCRN_BOTTOM);
upDate = 1;
}
// end display
uio_Get();
switch(currentPos){
case BLOCKSEL:
if(cButton == IO_RIGHT){nextPos = BLOCKDAT1;}
else if(cButton == IO_LEFT){;}
else if(cButton == IO_ENTER)
{
ioActive = 0;
x5558_SelectTagID(Target_Reader, &Target_Tag_ID[0]);
Timer_delay_us(15000);
x5558_LoginWrite(Target_Reader, &Target_Tag_PWD[0]);
Timer_delay_us(10000);
wError = x5558_WriteSingleBlock(Target_Reader, &cBlockDat1[0], 56, 1);
Timer_delay_us(10000);
if(wError == 1){wError = x5558_WriteSingleBlock(Target_Reader, &cBlockDat2[0], 57, 1);}
Timer_delay_us(10000);
if(wError == 1){wError = x5558_WriteSingleBlock(Target_Reader, &cBlockDat3[0], 58, 1);}
ioActive = 1;
if(wError == 1)
{
for(i=0; i<4; i++)
{
Target_Tag_ID[i] = cBlockDat1[i];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -