📄 rfid_readmenu.c
字号:
end = lcd_put5x7_Char(end, 15, sBlockDat[6]);
end = lcd_put5x7_Char(end, 15, sBlockDat[7]);
ioActive = 0;
if(Target_Reader == 70){U2270_PPCWriteBlock(6, &ReadBlockCmd2);}
Timer_delay_us(10000);
sBlockDatPtr = &sBlockDat[0];
strncpy(sBlockDatPtr,resetBlock,8);
if(Target_Reader == 70)
{
rError = U2270_ReadData(Target_Tag,&cDatPtr,MANCHESTER,X5557SYNC,32);
}
ioActive = 1;
sBlockDatPtr = &sBlockDat[0];
if(rError == 0)
{
for(i=0; i<2; i++)
{
conv_Char2HexStr2(sBlockDatPtr, *cDatPtr++);
sBlockDatPtr += 2;
}
}
end = lcd_put5x7_Char(end, 15, sBlockDat[0]);
end = lcd_put5x7_Char(end, 15, sBlockDat[1]);
end = lcd_put5x7_Char(end, 15, sBlockDat[2]);
if(rError == 0)
{
cDatPtr--;
sBlockDatPtr = &sBlockDat[0];
tmpData = (*cDatPtr++<<1) & 0x1F;
tmpData = tmpData | *cDatPtr>>7;
sBlockDat[0] = bcd_CHAR2BCD2(tmpData);
sBlockDat[1] = (sBlockDat[0] & 0x0F) + '0';
sBlockDat[0] = (sBlockDat[0] >> 4) + '0';
}
end = lcd_put_fString(54, 25, PSTR("Wafer#:")); // Wafer in dec
end = lcd_put5x7_Char(end, 25, sBlockDat[0]);
end = lcd_put5x7_Char(end, 25, sBlockDat[1]);
test = 0;
if(rError == 0)
{
sBlockDatPtr = &sBlockDat[0];
tmpData = *cDatPtr++ & 0x7F;
test = (unsigned int)(tmpData)<<8;
tmpData = *cDatPtr++;
test = test + tmpData;
}
end = lcd_put_fString(54, 35, PSTR("Die#:")); // Die in dec
itoa(test, sBlockDatPtr, 10);
end = lcd_put_String(end, 35, sBlockDatPtr);
lcd_update(SCRN_TOP,SCRN_BOTTOM);
firstTime = 1;
}
if(cButton>0 && cButton<6){}
}
uio_Release();
ioActive = 0;
if(Target_Reader == 70){U2270_PPCWriteBlock(2, &ResetCmd);} //Send Reset Cmd
ioActive = 1;
}
// *******************************************************************************
// Menu Reads and Displays the AFE Options register (if available)
// Only Reads Once unless ENTER is pressed
// ******************************************************************************/
void rfid_ReadMenu_5577AFEReg(unsigned char Target_Tag, unsigned char Target_Reader)
{
unsigned char i, rError = 1, firstTime = 0, end;
unsigned char *cDatPtr;
unsigned char tmpData[4]={0};
unsigned char ReadBlockCmd3 = 0xCC;
unsigned char ResetCmd = 0x00;
uio_Release();
while(cButton != IO_F1 && cButton != IO_F2 && cButton != IO_F3 && cButton != IO_F4)
{
if(upDate == 0 || 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(" AFE Options"));
lcd_horz_line(SCRN_LEFT, SCRN_RIGHT, 11); // First Row Separator
if(cPage == 0)
{
end = lcd_put_fString(4, 15, PSTR("Soft Modulation:")); //
if(rError == 0)
{
i=(tmpData[0] & 0x08)>>3;
end = lcd_put5x7_Char(end, 15, (i+'0'));
i=(tmpData[0] & 0x04)>>2;
end = lcd_put5x7_Char(end, 15, (i+'0'));
i=(tmpData[0] & 0x02);
if(i){end = lcd_put5x7_Char(end, 15, 'A');}
else{end = lcd_put5x7_Char(end, 15, 'D');}
}
else
{
end = lcd_put5x7_Char(end, 15, '?');
end = lcd_put5x7_Char(end, 15, '?');
end = lcd_put5x7_Char(end, 15, 'A');
}
end = lcd_put_fString(4, 25, PSTR("Clamp Voltage:")); //
if(rError == 0)
{
i=(tmpData[0] & 0x01);
end = lcd_put5x7_Char(end, 25, (i+'0'));
i=(tmpData[1] & 0x80)>>7;
end = lcd_put5x7_Char(end, 25, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 25, '?');
end = lcd_put5x7_Char(end, 25, '?');
}
end = lcd_put_fString(4, 35, PSTR("Mod Voltage:")); //
if(rError == 0)
{
i=(tmpData[1] & 0x40)>>6;
end = lcd_put5x7_Char(end, 35, (i+'0'));
i=(tmpData[1] & 0x20)>>5;
end = lcd_put5x7_Char(end, 35, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 35, '?');
end = lcd_put5x7_Char(end, 35, '?');
}
end = lcd_put_fString(4, 45, PSTR("CLK Detection:")); //
if(rError == 0)
{
i=(tmpData[1] & 0x10)>>4;
end = lcd_put5x7_Char(end, 45, (i+'0'));
i=(tmpData[1] & 0x08)>>3;
end = lcd_put5x7_Char(end, 45, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 45, '?');
end = lcd_put5x7_Char(end, 45, '?');
}
end = lcd_put_fString(4, 55, PSTR("Gap Detection:")); //
if(rError == 0)
{
i=(tmpData[1] & 0x04)>>2;
end = lcd_put5x7_Char(end, 55, (i+'0'));
i=(tmpData[1] & 0x02)>>1;
end = lcd_put5x7_Char(end, 55, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 55, '?');
end = lcd_put5x7_Char(end, 55, '?');
}
}
else if(cPage == 1)
{
end = lcd_put_fString(4, 15, PSTR("CLK Detection:")); //
if(rError == 0)
{
i=(tmpData[1] & 0x10)>>4;
end = lcd_put5x7_Char(end, 15, (i+'0'));
i=(tmpData[1] & 0x08)>>3;
end = lcd_put5x7_Char(end, 15, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 15, '?');
end = lcd_put5x7_Char(end, 15, '?');
}
end = lcd_put_fString(4, 25, PSTR("Gap Detection:")); //
if(rError == 0)
{
i=(tmpData[1] & 0x04)>>2;
end = lcd_put5x7_Char(end, 25, (i+'0'));
i=(tmpData[1] & 0x02)>>1;
end = lcd_put5x7_Char(end, 25, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 25, '?');
end = lcd_put5x7_Char(end, 25, '?');
}
end = lcd_put_fString(4, 35, PSTR("Write Damping:")); //
if(rError == 0)
{
i=(tmpData[1] & 0x01);
end = lcd_put5x7_Char(end, 35, (i+'0'));
i=(tmpData[2] & 0x80)>>7;
end = lcd_put5x7_Char(end, 35, (i+'0'));
i=(tmpData[2] & 0x40)>>6;
end = lcd_put5x7_Char(end, 35, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 35, '?');
end = lcd_put5x7_Char(end, 35, '?');
end = lcd_put5x7_Char(end, 35, '?');
}
end = lcd_put_fString(4, 45, PSTR("Demod Delay:")); //
if(rError == 0)
{
i=(tmpData[2] & 0x20)>>5;
end = lcd_put5x7_Char(end, 45, (i+'0'));
i=(tmpData[2] & 0x10)>>4;
end = lcd_put5x7_Char(end, 45, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 45, '?');
end = lcd_put5x7_Char(end, 45, '?');
}
end = lcd_put_fString(4, 55, PSTR("Write Protocol:")); //
if(rError == 0)
{
i=(tmpData[2] & 0x08)>>3;
end = lcd_put5x7_Char(end, 55, (i+'0'));
i=(tmpData[2] & 0x04)>>2;
end = lcd_put5x7_Char(end, 55, (i+'0'));
}
else
{
end = lcd_put5x7_Char(end, 55, '?');
end = lcd_put5x7_Char(end, 55, '?');
}
}
lcd_update(SCRN_TOP,SCRN_BOTTOM);
upDate = 1;
}
uio_Get();
if(cButton == IO_ENTER || firstTime == 0)
{
ioActive = 0;
if(Target_Reader == 70){U2270_PPCWriteBlock(6, &ReadBlockCmd3);}
Timer_delay_ms(10);
if(Target_Reader == 70)
{
rError = U2270_ReadData(Target_Tag,&cDatPtr,MANCHESTER,X5557SYNC,32);
if(rError == 0)
{
for(i=0; i<4; i++){tmpData[i]=*cDatPtr++;}
}
}
ioActive = 1;
firstTime = 1;
upDate = 0;
}
else if(cButton == IO_UP)
{
cPage=0;
upDate = 0;
}
else if(cButton == IO_DOWN)
{
cPage=1;
upDate = 0;
}
if(cButton>0 && cButton<6){uio_Release();}
}
uio_Release();
ioActive = 0;
if(Target_Reader == 70){U2270_PPCWriteBlock(2, &ResetCmd);} //Send Reset Cmd
ioActive = 1;
}
// *******************************************************************************
// Menu Reads and Displays the Traceablity Data from selected tag type (5558 format)
// if available.
// Only Reads Once unless ENTER is pressed
// ******************************************************************************/
void rfid_ReadMenu_5558MFGID(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 tmpData, end;
unsigned long int test;
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(" Manufacturer ID"));
lcd_horz_line(SCRN_LEFT, SCRN_RIGHT, 11); // First Row Separator
if(firstTime == 0){lcd_update(SCRN_TOP,SCRN_BOTTOM);}
// ****Read Block 61 ****//
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, 61);
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_put_fString(77, 14, PSTR("Tag:")); // Tag Type
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_put_fString(2, 14, PSTR("ACL:")); // ACL
end = lcd_put5x7_Char(end, 14, sBlockDat[4]);
end = lcd_put5x7_Char(end, 14, sBlockDat[5]);
end = lcd_put_fString(2, 22, PSTR("MFC:")); // MFC
end = lcd_put5x7_Char(end, 22, sBlockDat[6]);
end = lcd_put5x7_Char(end, 22, sBlockDat[7]);
// ****Read Block 60 ****//
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, 60);
rError = U2270_ReadData(Target_Tag,&cDatPtr,MANCHESTER,SOFSYNC,32);
}
ioActive = 1;
//*********************//
sBlockDatPtr = &sBlockDat[0];
strncpy(sBlockDatPtr,resetBlock,8);
if(rError == 0)
{
tmpData = *cDatPtr & 0x7C;
tmpData = tmpData >> 2;
sBlockDat[0] = bcd_CHAR2BCD2(tmpData);
sBlockDat[1] = (sBlockDat[0] & 0x0F) + '0';
sBlockDat[0] = (sBlockDat[0] >> 4) + '0';
sBlockDatPtr += 2;
}
end = lcd_put_fString(2, 38, PSTR("Wafer#:")); // Wafer in dec
end = lcd_put5x7_Char(end, 38, sBlockDat[0]);
end = lcd_put5x7_Char(end, 38, sBlockDat[1]);
test = 0;
if(rError == 0)
{
tmpData = *(cDatPtr++) & 0x03;
test = (unsigned long int)(tmpData)<<8;
tmpData = *(cDatPtr++);
test = test + ((unsigned long int)(tmpData)<<8);
tmpData = *(cDatPtr++);
test = test + tmpData;
}
end = lcd_put_fString(2, 46, PSTR("Die#:")); // Die in dec
ltoa(test, sBlockDatPtr,10);
end = lcd_put_String(end, 46, sBlockDatPtr);
sBlockDatPtr = &sBlockDat[0];
strncpy(sBlockDatPtr,resetBlock,8);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -