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

📄 rfid_writemenu.c

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