📄 rfid_readmenu.c
字号:
if(rError == 0)
{
conv_Char2HexStr2(sBlockDatPtr, *cDatPtr++);
}
end = lcd_put_fString(2, 30, PSTR("ICR:")); // ICR
end = lcd_put5x7_Char(end, 30, sBlockDat[0]);
end = lcd_put_fString(2, 54, PSTR("LotID:")); // LotID in dec
end = lcd_put5x7_Char(end, 54, sBlockDat[1]);
// ****Read Block 59 ****//
ioActive = 0;
if(Target_Reader == 70)
{
x5558_SelectTagID(Target_Reader, &Target_Tag_ID[0]);
Timer_delay_us(10000);
x5558_LoginRead(Target_Reader, &Target_Tag_PWD[0]);
Timer_delay_us(10000);
x5558_ReadSingleBlock(Target_Reader, 59);
rError = U2270_ReadData(Target_Tag,&cDatPtr,MANCHESTER,SOFSYNC,32);
}
ioActive = 1;
//*********************//
sBlockDatPtr = &sBlockDat[0];
strncpy(sBlockDatPtr,resetBlock,8);
if(rError == 0)
{
for(i=0; i<4; i++)
{
conv_Char2HexStr2(sBlockDatPtr, *cDatPtr++);
sBlockDatPtr += 2;
}
}
end = lcd_put5x7_Char(end, 54, sBlockDat[0]);
end = lcd_put5x7_Char(end, 54, sBlockDat[1]);
end = lcd_put5x7_Char(end, 54, sBlockDat[2]);
end = lcd_put5x7_Char(end, 54, sBlockDat[3]);
end = lcd_put5x7_Char(end, 54, sBlockDat[4]);
end = lcd_put5x7_Char(end, 54, sBlockDat[5]);
end = lcd_put5x7_Char(end, 54, sBlockDat[6]);
end = lcd_put5x7_Char(end, 54, sBlockDat[7]);
lcd_update(SCRN_TOP,SCRN_BOTTOM);
firstTime = 1;
}
if(cButton>0 && cButton<6){uio_Release();}
}
uio_Release();
}
// *******************************************************************************
// Menu Reads and Displays the Changeable Tag ID Data from selected tag type (5558 format)
// if available.
// Only Reads Once unless ENTER is pressed
// ******************************************************************************/
void rfid_ReadMenu_5558TagID(unsigned char Target_Tag, unsigned char Target_Reader)
{
unsigned char i, rError = 1, firstTime = 0;
unsigned char *resetBlock = "????????";
unsigned char sBlockDat[9] = "00000000";
unsigned char *sBlockDatPtr;
unsigned char *cDatPtr;
unsigned char end;
uio_Release();
while(cButton != IO_F1 && cButton != IO_F2 && cButton != IO_F3 && cButton != IO_F4)
{
uio_Get();
if(cButton == IO_ENTER || firstTime == 0)
{
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(" Tag ID"));
lcd_horz_line(SCRN_LEFT, SCRN_RIGHT, 11); // First Row Separator
if(firstTime == 0){lcd_update(SCRN_TOP,SCRN_BOTTOM);}
// ****Read Block 56-58 ****//
ioActive = 0;
if(Target_Reader == 70)
{
//x5558_SelectAll(Target_Reader);
x5558_SelectTagID(Target_Reader, &Target_Tag_ID[0]);
Timer_delay_us(10000);
x5558_LoginRead(Target_Reader, &Target_Tag_PWD[0]);
Timer_delay_us(10000);
x5558_ReadMultipleBlock(Target_Reader, 56, 58);
rError = U2270_ReadData(Target_Tag,&cDatPtr,MANCHESTER,SOFSYNC,96);
}
ioActive = 1;
//*********************//
sBlockDatPtr = &sBlockDat[0];
strncpy(sBlockDatPtr,resetBlock,8);
if(rError == 0)
{
for(i=0; i<4; i++)
{
conv_Char2HexStr2(sBlockDatPtr, *cDatPtr++);
sBlockDatPtr += 2;
}
}
end = lcd_put_fString(2, 14, PSTR("Block 56:")); // ACL
end = lcd_put5x7_Char(end, 14, sBlockDat[0]);
end = lcd_put5x7_Char(end, 14, sBlockDat[1]);
end = lcd_put5x7_Char(end, 14, sBlockDat[2]);
end = lcd_put5x7_Char(end, 14, sBlockDat[3]);
end = lcd_put5x7_Char(end, 14, sBlockDat[4]);
end = lcd_put5x7_Char(end, 14, sBlockDat[5]);
end = lcd_put5x7_Char(end, 14, sBlockDat[6]);
end = lcd_put5x7_Char(end, 14, sBlockDat[7]);
sBlockDatPtr = &sBlockDat[0];
strncpy(sBlockDatPtr,resetBlock,8);
if(rError == 0)
{
for(i=0; i<4; i++)
{
conv_Char2HexStr2(sBlockDatPtr, *cDatPtr++);
sBlockDatPtr += 2;
}
}
end = lcd_put_fString(2, 22, PSTR("Block 57:")); // ACL
end = lcd_put5x7_Char(end, 22, sBlockDat[0]);
end = lcd_put5x7_Char(end, 22, sBlockDat[1]);
end = lcd_put5x7_Char(end, 22, sBlockDat[2]);
end = lcd_put5x7_Char(end, 22, sBlockDat[3]);
end = lcd_put5x7_Char(end, 22, sBlockDat[4]);
end = lcd_put5x7_Char(end, 22, sBlockDat[5]);
end = lcd_put5x7_Char(end, 22, sBlockDat[6]);
end = lcd_put5x7_Char(end, 22, sBlockDat[7]);
sBlockDatPtr = &sBlockDat[0];
strncpy(sBlockDatPtr,resetBlock,8);
if(rError == 0)
{
for(i=0; i<4; i++)
{
conv_Char2HexStr2(sBlockDatPtr, *cDatPtr++);
sBlockDatPtr += 2;
}
}
end = lcd_put_fString(2, 30, PSTR("Block 58:")); // ACL
end = lcd_put5x7_Char(end, 30, sBlockDat[0]);
end = lcd_put5x7_Char(end, 30, sBlockDat[1]);
end = lcd_put5x7_Char(end, 30, sBlockDat[2]);
end = lcd_put5x7_Char(end, 30, sBlockDat[3]);
end = lcd_put5x7_Char(end, 30, sBlockDat[4]);
end = lcd_put5x7_Char(end, 30, sBlockDat[5]);
end = lcd_put5x7_Char(end, 30, sBlockDat[6]);
end = lcd_put5x7_Char(end, 30, sBlockDat[7]);
lcd_update(SCRN_TOP,SCRN_BOTTOM);
firstTime = 1;
}
if(cButton>0 && cButton<6){uio_Release();}
}
uio_Release();
}
// *******************************************************************************
// Menu that searches for ATA5558 tags in the field
// ******************************************************************************/
void rfid_ReadMenu_5558Anticollision(unsigned char Target_Tag, unsigned char Target_Reader)
{
unsigned char Target_Tag_ID1[12] = {0};
unsigned char Target_Tag_ID2[12] = {0};
unsigned char Target_Tag_ID3[12] = {0};
unsigned char Target_Tag_ID4[12] = {0};
unsigned char Target_Tag_ID5[12] = {0};
unsigned char Target_Tag_ID6[12] = {0};
unsigned char Target_Tag_ID7[12] = {0};
unsigned char Target_Tag_ID8[12] = {0};
unsigned char Target_Tag_ID9[12] = {0};
unsigned char Target_Tag_ID10[12] = {0};
unsigned char Target_Tag_ID11[12] = {0};
unsigned char Target_Tag_ID12[12] = {0};
unsigned char Temp[3] = {0};
unsigned char i,quit=0, end, TagSearch=1;
unsigned char tagSelect = 0;
unsigned char temp1, temp2, temp3;
temp1 = U2270_RFfield_Status();
temp2 = U2270_OutputEn_Status();
temp3 = U2270_Standby_Status();
//**** Force Reader On/Active ****//
U2270_RFfield(ON);
U2270_OutputEn(ON);
U2270_Standby(OFF);
nextPos = 0;
upDate = 0;
TagCount = 0;
TagSearch = 1;
tagSelect = 0;
lcd_clear_area(SCRN_LEFT+1,SCRN_TOP+1,SCRN_RIGHT-1,SCRN_BOTTOM-1);
uio_Release();
while(cButton != IO_F1 && cButton != IO_F2 && cButton != IO_F3 && cButton != IO_F4 && quit == 0)
{
// Menu Display
if(currentPos != nextPos || upDate == 0)
{
currentPos = nextPos;
lcd_clear_area(SCRN_LEFT+1,SCRN_TOP+1,SCRN_RIGHT-1,SCRN_BOTTOM-1);
lcd_put_fString(4, 2, PSTR("x5558 Anticollision"));
lcd_box(SCRN_LEFT,10,SCRN_RIGHT,22);
lcd_vert_line(10,21,63);
lcd_put_fString(lcd_fcenter(PSTR("Search"))-31, 13, PSTR("Search"));
lcd_put_fString(lcd_fcenter(PSTR("Select"))+31, 13, PSTR("Select"));
for(i=0; i<TagCount; i++)
{
if(i < 4)
{
end = lcd_put_fString(3, 25+(i*9), PSTR("Tag#"));
Temp[0] = bcd_CHAR2BCD2(i+1);
Temp[1] = (Temp[0] & 0x0F) + '0';
Temp[0] = (Temp[0] >> 4) + '0';
lcd_put_String(end, 25+(i*9), &Temp[0]);
if(i == tagSelect-1){lcd_invert_area(2,24+(i*9),38,32+(i*9));}
}
else if(i < 8)
{
end = lcd_put_fString(41, 25+((i-4)*9), PSTR("Tag#"));
Temp[0] = bcd_CHAR2BCD2(i+1);
Temp[1] = (Temp[0] & 0x0F) + '0';
Temp[0] = (Temp[0] >> 4) + '0';
lcd_put_String(end, 25+((i-4)*9), &Temp[0]);
if(i == tagSelect-1){lcd_invert_area(40,24+((i-4)*9),76,32+((i-4)*9));}
}
else
{
end = lcd_put_fString(79, 25+((i-8)*9), PSTR("Tag#"));
Temp[0] = bcd_CHAR2BCD2(i+1);
Temp[1] = (Temp[0] & 0x0F) + '0';
Temp[0] = (Temp[0] >> 4) + '0';
lcd_put_String(end, 25+((i-8)*9), &Temp[0]);
if(i == tagSelect-1){lcd_invert_area(78,24+((i-8)*9),114,32+((i-8)*9));}
}
}
lcd_invert_area((3+(currentPos*63)), 12, (60+(currentPos*63)), 20);
lcd_update(SCRN_TOP,SCRN_BOTTOM);
switch(tagSelect){
case 1:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID1[i];}
break;
case 2:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID2[i];}
break;
case 3:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID3[i];}
break;
case 4:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID4[i];}
break;
case 5:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID5[i];}
break;
case 6:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID6[i];}
break;
case 7:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID7[i];}
break;
case 8:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID8[i];}
break;
case 9:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID9[i];}
break;
case 10:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID10[i];}
break;
case 11:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID11[i];}
break;
case 12:
for(i=0; i<12; i++){Target_Tag_ID[i]=Target_Tag_ID12[i];}
break;
}
upDate = 1;
}
// end display
uio_Get();
switch(currentPos){
case 0:
if(cButton == IO_ENTER || cButton == IO_DOWN)
{
lcd_clear_area(SCRN_LEFT+1,23,SCRN_RIGHT-1,SCRN_BOTTOM-1);
lcd_invert_area((3+(currentPos*63)), 12, (60+(currentPos*63)), 20);
lcd_put_fString(15, 34, PSTR("Searching..."));
lcd_update(SCRN_TOP,SCRN_BOTTOM);
x5558_ResetToReady(Target_Reader);
Timer_delay_us(15000);
TagCount = 0;
TagSearch = 1;
tagSelect = 0;
while(TagCount < 12 && TagSearch == 1)
{
ioActive = 0;
TagSearch = U2270_x5558_Arbitrate();
ioActive = 1;
if(TagSearch == 1)
{
if(TagCount == 0)
{
for(i=0; i<12; i++){Target_Tag_ID1[i]=Target_Tag_ID[i];}
tagSelect = 1;
}
else if(TagCount == 1)
{
for(i=0; i<12; i++){Target_Tag_ID2[i]=Target_Tag_ID[i];}
tagSelect = 2;
}
else if(TagCount == 2)
{
for(i=0; i<12; i++){Target_Tag_ID3[i]=Target_Tag_ID[i];}
tagSelect = 3;
}
else if(TagCount == 3)
{
for(i=0; i<12; i++){Target_Tag_ID4[i]=Target_Tag_ID[i];}
tagSelect = 4;
}
else if(TagCount == 4)
{
for(i=0; i<12; i++){Target_Tag_ID5[i]=Target_Tag_ID[i];}
tagSelect = 5;
}
else if(TagCount == 5)
{
for(i=0; i<12; i++){Target_Tag_ID6[i]=Target_Tag_ID[i];}
tagSelect = 6;
}
else if(TagCount == 6)
{
for(i=0; i<12; i++){Target_Tag_ID7[i]=Target_Tag_ID[i];}
tagSelect = 7;
}
else if(TagCount == 7)
{
for(i=0; i<12; i++){Target_Tag_ID8[i]=Target_Tag_ID[i];}
tagSelect = 8;
}
else if(TagCount == 8)
{
for(i=0; i<12; i++){Target_Tag_ID9[i]=Target_Tag_ID[i];}
tagSelect = 9;
}
else if(TagCount == 9)
{
for(i=0; i<12; i++){Target_Tag_ID10[i]=Target_Tag_ID[i];}
tagSelect = 10;
}
else if(TagCount == 10)
{
for(i=0; i<12; i++){Target_Tag_ID11[i]=Target_Tag_ID[i];}
tagSelect = 11;
}
else if(TagCount == 11)
{
for(i=0; i<12; i++){Target_Tag_ID12[i]=Target_Tag_ID[i];}
tagSelect = 12;
}
TagCount++;
snd_Play(BEEPFREQ1,BEEPFREQ0,BEEPTIME); // return Audio feedback
}
}
upDate = 0;
}
else if(cButton == IO_UP){;}
else if(cButton == IO_RIGHT){nextPos = 1;}
break;
case 1:
if(cButton == IO_ENTER){rfidMenu_ReadWriteMenu();}
else if(cButton == IO_UP && tagSelect > 1){tagSelect--;}
else if(cButton == IO_DOWN && tagSelect < 12 && TagCount > tagSelect){tagSelect++;}
else if(cButton == IO_LEFT){nextPos = 0;}
else if(cButton == IO_RIGHT){;}
upDate = 0;
break;
default:
break;
}
if(cButton>0 && cButton<6){uio_Release();}
}
uio_Release();
//**** Restore previous Reader Settings ****//
U2270_RFfield(temp1);
U2270_OutputEn(temp2);
U2270_Standby(temp3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -