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

📄 rfid_rfidmenu.c

📁 找的一个用U2270B开发的射频卡项目文件
💻 C
📖 第 1 页 / 共 3 页
字号:
// $Id: rfid_RFIDMenu.c,v 1.8 2006/12/11 17:46:49 tprescott Exp $
/*************************************************************
Project : rfid_RFIDMenu.c
Date    : 9/08/2006
Author  : Toby Prescott                   
Company : Atmel                           
Comments: AVR Studio GCC

Revisions: 
	v1.0 - Started
	v2.1 - 1/20/06 Changed to work with new LCD drive
	v2.2 - 3/8/06 Changed to Flash Srings to save SRAM
	v2.3 - 3/14/06 Fixing 5558 read/write routines
	       3/15/06 Adding 5530 Support  
	v2.4 - 4/6/06  Add new working 5558 R/W routines
	       5/19/06 Fixed mfg. ID error and display as dec
	v2.5 - 6/20/06 Add Animal ID section with Read and Write
	v2.6 - 9/19/06 Clean for WinAVR
*************************************************************/

#include "rfid_RFIDMenu.h" 

// Declare your global variables here
static const char sRFIDMAIN1[] PROGMEM = "Select Reader/Tag";
static const char sRFIDMAIN2[] PROGMEM = "Reader Options";
static const char sRFIDMAIN3[] PROGMEM = "Tag Timing Options";
static const char sRFIDMAIN4[] PROGMEM = "Write Configurations";
static const char sRFIDMAIN5[] PROGMEM = "Read/Write Menu";
static const char sRFIDMAIN6[] PROGMEM = "Animal ID";
static PGM_P sRFIDMAINPtr[6] = {sRFIDMAIN1,sRFIDMAIN2,sRFIDMAIN3,sRFIDMAIN4,sRFIDMAIN5,sRFIDMAIN6};

static const char sRFIDSELECT1[] PROGMEM = "Readers";
static const char sRFIDSELECT2[] PROGMEM = "Tags";
static const char sRFIDREADER1[] PROGMEM = "U2270B";
static const char sRFIDTAG1[] PROGMEM = "x5530";
static const char sRFIDTAG2[] PROGMEM = "x5551";
static const char sRFIDTAG3[] PROGMEM = "x5552";
static const char sRFIDTAG4[] PROGMEM = "x5557";
static const char sRFIDTAG5[] PROGMEM = "x5567";
static const char sRFIDTAG6[] PROGMEM = "x5577";
static const char sRFIDTAG7[] PROGMEM = "x5570";
static const char sRFIDTAG8[] PROGMEM = "x5558"; 
PGM_P sRFIDTAGPtr[8] = {sRFIDTAG1,sRFIDTAG2,sRFIDTAG3,sRFIDTAG4,sRFIDTAG5,sRFIDTAG6,sRFIDTAG7,sRFIDTAG8};

static const char sRFIDCFG1[] PROGMEM = "This will attempt to";
static const char sRFIDCFG2[] PROGMEM = "program Block 0 of";
static const char sRFIDCFG3[] PROGMEM = "the selected tag.";
static const char sRFIDCFG4[] PROGMEM = "No verification is";
static const char sRFIDCFG5[] PROGMEM = "done in this step";
static const char sRFIDCFG6[] PROGMEM = "Are you sure you";
static const char sRFIDCFG7[] PROGMEM = "want to write these";
static const char sRFIDCFG8[] PROGMEM = "settings to the tag?"; 
static PGM_P sRFIDCFGPtr[8] = {sRFIDCFG1,sRFIDCFG2,sRFIDCFG3,sRFIDCFG4,sRFIDCFG5,sRFIDCFG6,sRFIDCFG7,sRFIDCFG8};
 
static unsigned char currentPos, nextPos=0, cLineItem, cPage=0;
unsigned char Target_Reader_E EEMEM = 70;
unsigned char Target_Tag_E EEMEM = 67;

unsigned char Target_Reader = 70;
unsigned char Target_Tag = 67;
//unsigned char c64bAnimalIDCode[13]={0};

// *******************************************************************************
// Menu listing the RFID Options available in this kit
// ******************************************************************************/
void rfidMenu_Display(void)
{
    nextPos = 0;
	cPage = 0;
    upDate = 0;
	Target_Reader = eeprom_read_byte(&Target_Reader_E);
	Target_Tag = eeprom_read_byte(&Target_Tag_E);

	U2270_InitReader();
	U2270_InitTimings(Target_Tag);

    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);
		 	lcd_put_fString(4, 2, PSTR("RFID     Tag="));
			if(Target_Tag == 30){lcd_put_fString(84, 2, sRFIDTAGPtr[0]);}
			else if(Target_Tag == 51){lcd_put_fString(84, 2, sRFIDTAGPtr[1]);}
			else if(Target_Tag == 52){lcd_put_fString(84, 2, sRFIDTAGPtr[2]);}
			else if(Target_Tag == 57){lcd_put_fString(84, 2, sRFIDTAGPtr[3]);}
			else if(Target_Tag == 67){lcd_put_fString(84, 2, sRFIDTAGPtr[4]);}
			else if(Target_Tag == 77){lcd_put_fString(84, 2, sRFIDTAGPtr[5]);}
			else if(Target_Tag == 70){lcd_put_fString(84, 2, sRFIDTAGPtr[6]);}
			else if(Target_Tag == 58){lcd_put_fString(84, 2, sRFIDTAGPtr[7]);}
			lcd_invert_area(3,1,27,10);
			lcd_box(SCRN_LEFT,SCRN_TOP,SCRN_RIGHT,10);

			for(cLineItem = 0; cLineItem < 6; cLineItem++)
		 	{
		 		if((13+(cLineItem*9)-(cPage*9)) >= 13 && (13+(cLineItem*9)-(cPage*9)) <= SCRN_BOTTOM-8)
		 		{
					lcd_put_fString(4, (13+(cLineItem*9)-(cPage*9)), sRFIDMAINPtr[cLineItem]);
		 		}
		 	}			
			lcd_invert_area(3, (12+((currentPos)*9)-(cPage*9)), end_fString_Pos(4, sRFIDMAINPtr[currentPos]), (20+((currentPos)*9)-(cPage*9)));
		 	
		 	// Insert more display code here
	 	
			lcd_update(SCRN_TOP,SCRN_BOTTOM);
			upDate = 1;
		}
		// end display  

        uio_Get();
		switch(currentPos){
        case 0:
            if(cButton == IO_RIGHT || cButton == IO_ENTER)
            {
            	rfidMenu_Select();
				nextPos = 0;
            	upDate = 0;
            }
            else if(cButton == IO_UP){;}
            else if(cButton == IO_DOWN){nextPos = 1;}
            break;
        case 1:
            if(cButton == IO_RIGHT || cButton == IO_ENTER)
            {
             	if(Target_Reader == 70){rfidMenu_U2270Config();}
             	upDate = 0;
				nextPos = 1;
            }
            else if(cButton == IO_UP)
            {
            	cPage = 0;
            	nextPos = 0;
            }
            else if(cButton == IO_DOWN){nextPos = 2;}
            break;
        case 2:
            if(cButton == IO_RIGHT || cButton == IO_ENTER)
            {
             	if(Target_Tag != 52){rfidTimingMenu_Configure(Target_Tag,Target_Reader);}
				nextPos = 2;
           		upDate = 0;
            }
            else if(cButton == IO_UP){nextPos = 1;}
            else if(cButton == IO_DOWN){nextPos = 3;}
            break;
        case 3:
            if(cButton == IO_RIGHT || cButton == IO_ENTER)
            {
             	if(Target_Tag != 30 && Target_Tag != 52){rfidMenu_WriteConfiguration();}
				nextPos = 3;
           		upDate = 0;
            }
            else if(cButton == IO_UP){nextPos = 2;}
            else if(cButton == IO_DOWN){nextPos = 4;}
            break;
        case 4:	        
            if(cButton == IO_RIGHT || cButton == IO_ENTER)
            {
            	if(Target_Tag != 58 && Target_Tag != 52){rfidMenu_ReadWriteMenu();}
            	else if(Target_Tag == 58)
            	{
            		rfid_ReadMenu_5558Anticollision(Target_Tag,Target_Reader);
            		//if(TagCount != 0){rfidMenu_ReadWriteMenu();}
            	}
				nextPos = 4;
            	upDate = 0;
            }
            else if(cButton == IO_UP){nextPos = 3;}
            else if(cButton == IO_DOWN)
            {
            	cPage = 1;
            	nextPos = 5;
            }
            break;
        case 5:	        
           	if(cButton == IO_RIGHT || cButton == IO_ENTER)
           	{
           		animalID_Display(Target_Tag, Target_Reader);
				nextPos = 5;
             	upDate = 0;
          	}
            else if(cButton == IO_UP){nextPos = 4;}
            else if(cButton == IO_DOWN){;}
            break;
     	default:
     		break;
        }
        if(cButton>0 && cButton<6){uio_Release();}
    }
    uio_Release();
}

// *******************************************************************************
// Menu to select the Reader and Transponder combination to be used
// ******************************************************************************/
void rfidMenu_Select(void)
{
    unsigned char cRPage = 0, cTPage = 0;
    unsigned char itemCheck=0;
    
    nextPos = 0;
	cPage = 0;
    upDate = 0;

    //**** Check which tag is currently selected and place checkmark flag ****//
    if(Target_Tag == 30){itemCheck = x5530;}
   	else if(Target_Tag == 51){itemCheck = x5551;}
    else if(Target_Tag == 52){itemCheck = x5552;}
    else if(Target_Tag == 57){itemCheck = x5557;}
    else if(Target_Tag == 67){itemCheck = x5567;}
    else if(Target_Tag == 77){itemCheck = x5577;}
    else if(Target_Tag == 70){itemCheck = x5570;}
    else if(Target_Tag == 58){itemCheck = x5558;}
                           
    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);
 			lcd_put_fString(lcd_fcenter(sRFIDMAINPtr[0]), 2, sRFIDMAINPtr[0]);
			lcd_box(SCRN_LEFT,10,SCRN_RIGHT,21);
 			lcd_vert_line(10,SCRN_BOTTOM,63);
 			lcd_put_fString(lcd_fcenter(&sRFIDSELECT1[0])-31, 13, &sRFIDSELECT1[0]);
 			lcd_put_fString(lcd_fcenter(&sRFIDSELECT2[0])+31, 13, &sRFIDSELECT2[0]);
			
		 	for(cLineItem = 0; cLineItem < 1; cLineItem++)
		 	{
				if((24+(cLineItem*9)-(cRPage*9)) >= 22 && (24+(cLineItem*9)-(cRPage*9)) <= SCRN_BOTTOM-7)
				{
					lcd_put_fString(lcd_fcenter(&sRFIDREADER1[cLineItem])-31, (24+(cLineItem*9)-(cRPage*9)), &sRFIDREADER1[cLineItem]);
				}
		 	}
		 	for(cLineItem = 0; cLineItem < 8; cLineItem++)
		 	{
				if((24+(cLineItem*9)-(cTPage*9)) >= 22 && (24+(cLineItem*9)-(cTPage*9)) <= SCRN_BOTTOM-7)
				{
					lcd_put_fString(lcd_fcenter(sRFIDTAGPtr[cLineItem])+35, (24+(cLineItem*9)-(cTPage*9)), sRFIDTAGPtr[cLineItem]);
		 			if(cLineItem == itemCheck){lcd_put5x7_Char(67, (23+(cLineItem*9)-(cTPage*9)), 30);}
		 		}
		 	}
			lcd_invert_area(lcd_fcenter(sRFIDTAGPtr[currentPos])+34, (23+((currentPos)*9)-(cTPage*9)), end_fString_Pos(lcd_fcenter(sRFIDTAGPtr[currentPos])+35, sRFIDTAGPtr[currentPos]), (31+((currentPos)*9)-(cTPage*9)));
		 	
		 	// Insert more display code here
		 	if(Target_Reader == 70){lcd_put5x7_Char(4, 23, 30);}
	 	
			lcd_update(SCRN_TOP,SCRN_BOTTOM);
			upDate = 1;
		}
		// end display  

        uio_Get();
       	switch(currentPos){
        case U2270:
                    if(cButton == IO_ENTER){Target_Reader = 70;}
                    else if(cButton == IO_UP){;}
                    else if(cButton == IO_DOWN){;}
                    else if(cButton == IO_LEFT){;}
                    else if(cButton == IO_RIGHT){;}
                    break;
        case x5530:
                    if(cButton == IO_ENTER)
                    {
                    	Target_Tag = 30;
                    	itemCheck = x5530;
                    	upDate = 0;
                    }
                    else if(cButton == IO_UP){;}
                    else if(cButton == IO_DOWN){nextPos = x5551;}
                    else if(cButton == IO_LEFT){;}
                    else if(cButton == IO_RIGHT){;}
                    break;
        case x5551:
                    if(cButton == IO_ENTER)
                    {
                    	Target_Tag = 51;
                    	itemCheck = x5551;
                    	upDate = 0;
                    }
                    else if(cButton == IO_UP)
                    {
                    	nextPos = x5530;
                    	cTPage = 0;
                    }
                    else if(cButton == IO_DOWN){nextPos = x5552;}
                    else if(cButton == IO_LEFT){;}
                    else if(cButton == IO_RIGHT){;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -