⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfid_readmenu.c

📁 找的一个用U2270B开发的射频卡项目文件
💻 C
📖 第 1 页 / 共 3 页
字号:
	        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 + -