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

📄 rfid_readmenu.c

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