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

📄 setup.c

📁 指纹识别源代码,用于智能门紧,还有配合MF800卡使用
💻 C
📖 第 1 页 / 共 5 页
字号:
	else
	{
		dispselectmessage(tblbaud[setcount]);
	}
}
/////////////////////////////////////////////////////////////////////////////////
unsigned char code baudratetimer[4]={244,250,253,232};
/////////////////////////////////////////////////////////////////////////////////
void changebaudrate(unsigned char baudrate)
{

	TR1=0;
	delayTimerl(T5MS);
	//TH1=253;
	TH1=baudratetimer[baudrate];
	delayTimerl(T5MS);
	TR1=1;

	delayTimerl(T5MS);
	delayTimerl(T5MS);
	delayTimerl(T5MS);
	delayTimerl(T5MS);
	init_modem();
}
/////////////////////////////////////////////////////////////////////////////////
void setbaudrate()		//ok
{
	if(keynumber==0xff)setbaudratedisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				setcount=readbaudrate();
				//setbaudrate(0xff);
				dispselectmessage(tblbaud[setcount]);
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)seteventcleardisp();
			else if(keynumber==NUMBER4)setduressdisp();
		}
		else
		{
			if(keynumber==ENTER)
			{
				submenuflag=0;
				ram_writep0(BAUDRATE,setcount);
				changebaudrate(setcount);
				setbaudratedisp();
				
			}
			else if(keynumber==CANCEL)
			{
				//submenuflag=0;
				clearsetup();
				setbaudratedisp();
			}
			else if(keynumber==NUMBER6)
			{
				setcount++;
				if(setcount>=MAXBAUDRATESEL)setcount=0;
				setbaudratedisp();
			}
			else if(keynumber==NUMBER4)
			{
				setcount--;
				if(setcount>=MAXBAUDRATESEL)setcount=MAXBAUDRATESEL-1;
				setbaudratedisp();
			}
		}
	}
}
//////////////////////////////////////////////////////////////////////////////
void seteventcleardisp()
{
	if(!submenuflag)
	{
		setupitem=SETEVENTCLEAR;
		displaymessage(LMEVENTCLEAR,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		displaymessage(LMYESNO,LINE2);
	}
}
//////////////////////////////////////////////////////////////////////////////
void seteventclear()
{
	if(keynumber==0xff)seteventcleardisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				seteventcleardisp();
				
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setmasterchangedisp();
			else if(keynumber==NUMBER4)setbaudratedisp();
		}
		else
		{
			if((keynumber==ENTER)||(keynumber==CANCEL)||(keynumber==NUMBER0))
			{
				submenuflag=0;
				seteventcleardisp();
			}
			else if(keynumber==NUMBER1)
			{
				submenuflag=0;
				//Here clear the event
				ram_writep0(EVENTSTART,0);
				ram_writep0(EVENTSTART+1,0);
				ram_writep0(EVENTSTOP,0);
				ram_writep0(EVENTSTOP+1,0);
				
				seteventcleardisp();
			}
		}
	}
}
/////////////////////////////////////////////////////////////////////////////////////
void setmasterchangedisp()
{
	if(!submenuflag)
	{
		setupitem=SETMASTERCHANGE;
		displaymessage(LMMASTERCHANGE,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		if(!submenu1flag)
		{
				displaymessage(LMINPUTNEWMASTER,LINE1);
				displaymessage(LMINPUTMASTERID,LINE2);
				lcdcuron(MASTERIDSTARTP,LINE2);
		}
		else
		{
		}
		
	}

}
/////////////////////////////////////////////////////////////////////////////////////
void removenormaluser()
{
	getidfromlcd();
	if(getuserbyid())
	{
		deleteuserbysn();
		rdeleteuserbysn();
	}
	else
	{
		_nop_();
	}
}
/////////////////////////////////////////////////////////////////////////////////////
unsigned char deleteoldmaster()
{
	unsigned char i;
	if(readmasterchange())
	{
		if(readfpmode())
		{
			displaymessage(LMBLANK,LINE2);
			displaymessage(LMPUTOLDMASTERFP,LINE1);
			delayTimerh(TMSGWAITTIME);
			
			if(!capturecheckimage()) return MASTERFPERR;
			if(!rextractfeature(3,0)) return MASTERFPERR;
			
			currentsn=0x9999;	//master's sn
			
			if(!rfinduserbysn())	return MASTERFPERR;
			
			if(!rdeleteuserbysn()) return DELETEMASTERERR;
			
			for(i=0;i<8;i++)tempbuff[i]=0xff;
			writeuserdata(MAXUSERNUM+20);
			
			ram_writep0(MASTERCHANGED,0);		//clear master changed flag	
			
			return DELETEMASTEROK;
						
		}
	}
	else
		return TRUE;
}
/////////////////////////////////////////////////////////////////////////////////////
void setmasterchange()
{
	if(keynumber==0xff)setmasterchangedisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				clearsetup();
				submenuflag=1;

				//displaymessage(LMINPUTNEWMASTER,LINE1);
				//displaymessage(LMINPUTMASTERID,LINE2);
				//l/cdcur(MASTERIDSTARTP,LINE2);
				if(readmasterchange())
				{
					if(readfpmode())
					{
						if(deleteoldmaster()==DELETEMASTEROK)
						{
							setmasterchangedisp();
						}
						else
						{
							displaymessage(LMBLANK,LINE1);
							displaymessage(LMFINGERERR,LINE2);
							delayTimerh(TMSGWAITTIME);
							clearsetup();
							setmasterchangedisp();
						}
					}
				}
				setmasterchangedisp();
				
				
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setsysinitdisp();
			else if(keynumber==NUMBER4)seteventcleardisp();
		}
		else
		{
			if(!submenu1flag)
			{
				if(keynumber==ENTER)
				{

					if(setcount>=MINUSERIDLEN)
					{
						submenu1flag=1;
						subsetcount=0;
						//getidfromlcd();
						//if(!getuserbyid())
						//{
						//	//deleteuserbysn();
						//	rdeleteuserbysn();
						//}
						removenormaluser();
						setcount=0;
						displaymessage(LMMASTERPASS,LINE1);
						displaymessage(LMMASTERPASSIN,LINE2);
						lcdcuron(MASTERPASSSTARTP,LINE2);
					}
				}
				else if(keynumber==CANCEL)
				{
					clearsetup();
					setmasterchangedisp();
				}
				else
				{
					
					dispbuff[LINE2][MASTERIDSTARTP+setcount]=keynumber+0x30;
					setcount++;
					display(LINE2);
					lcdcuron(MASTERIDSTARTP+setcount,LINE2);

					if(setcount>=8)
					{
						submenu1flag=1;
						subsetcount=0;
						//registerid();
						removenormaluser();
						displaymessage(LMMASTERPASS,LINE1);
						displaymessage(LMMASTERPASSIN,LINE2);
					}
				}
			}
			else
			{
				if(keynumber==ENTER)
				{
				}
				else if(keynumber==CANCEL)
				{
						displaymessage(LMMASTERCHANGEFAIL,LINE1);		//051011
						displaymessage(LMMASTERBACKTO0,LINE2);			//051011
						delayTimerh(TMSGWAITTIME);							//051011
						ram_writep0(MASTERCHANGED,0);					//051011

					clearsetup();
					setmasterchangedisp();

				}
				else
				{
					dispbuff[LINE2][setcount+MASTERPASSSTARTP]=keynumber+0x30;
					display(LINE2);
					keybuff[setcount]=keynumber;
					setcount++;
					lcdcuron(MASTERPASSSTARTP+setcount,LINE2);
					if(setcount>=4)
					{
						keybuff[0]=(keybuff[0]<<4)+keybuff[1];
						keybuff[1]=(keybuff[2]<<4)+keybuff[3];
						
						tempbuff[0]=userid[0];
						tempbuff[1]=userid[1];
						tempbuff[2]=userid[2];
						tempbuff[3]=userid[3];
						tempbuff[4]=keybuff[0];
						tempbuff[5]=keybuff[1];
						tempbuff[6]=0x55;
						tempbuff[7]=0xaa;
						writeuserdata(MASTERUSERSN);
						ram_writep0(MASTERCHANGED,1);

						if(readfpmode())
						{
							currentsn=0x9999;
							if(registerfp())
							{
								displaymessage(LMBLANK,LINE1);
								displaymessage(LMMASTERCHANGEOK,LINE2);
								delayTimerh(TMSGWAITTIME);
							}
							else
							{
								displaymessage(LMMASTERCHANGEFAIL,LINE1);
								displaymessage(LMMASTERBACKTO0,LINE2);
								delayTimerh(TMSGWAITTIME);
								ram_writep0(MASTERCHANGED,0);
							}
						}
						else
						{
							displaymessage(LMBLANK,LINE1);
							displaymessage(LMMASTERCHANGEOK,LINE2);
							delayTimerh(TMSGWAITTIME);
						
						}
						
						clearsetup();
						setmasterchangedisp();
							
					}

				}
			}
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
void setpowerinitpass()
{
	if((keynumber==CANCEL)||(keynumber==ENTER));
	else
	{
		dispbuff[LINE2][setcount+MASTERPASSSTARTP]=keynumber;
		displaybyte('*',MASTERPASSSTARTP+setcount+0x40+SET_DDRAM_ADD);
		keybuff[setcount]=keynumber;
		//display(LINE2);
		setcount++;
		lcdcuron(MASTERPASSSTARTP+setcount,LINE2);
		if(setcount>=4)
		{
			clearsetup();
			passinflag=0;
			setflag=0;

			keybuff[0]=(keybuff[0]<<4)+keybuff[1];
			keybuff[1]=(keybuff[2]<<4)+keybuff[3];
			if((keybuff[0]==MASTERPASSHIGH)&&(keybuff[1]==MASTERPASSLOW))
			{
				displaymessage(LMBLANK,LINE1);
				displaymessage(LMINITIALIZE,LINE2);
				initfpsystem();				
				displaymessage(LMBLANK,LINE1);
				displaymessage(LMSYSINITOK,LINE2);
			
				delayTimerh(TMSGWAITTIME);

				displaymessage(LMBLANK,LINE1);
				displaymessage(LMSWITCH,LINE2);
			}
			while(1)delayTimerh(T100MS);
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////
void setsysinitdisp()
{
	if(!submenuflag)
	{
		setupitem=SETSYSINIT;
		displaymessage(LMSYSTEMINIT,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		displaymessage(LMYESNO,LINE2);
	}
}
////////////////////////////////////////////////////////////////////////////////////
void setsysinit()		//ok
{
	if(keynumber==0xff)setsysinitdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				//setsysinit(0xff);
				setsysinitdisp();
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setidcleardisp();
			else if(keynumber==NUMBER4)setmasterchangedisp();
		}
		else
		{
			if((keynumber==ENTER)||(keynumber==CANCEL)||(keynumber==NUMBER0))
			{
				//submenuflag=0;
				clearsetup();
				setsysinitdisp();
				//setsysinit(0xff);
			}
			else if(keynumber==NUMBER1)
			{
				submenuflag=0;
				//here initialize the system
				displaymessage(LMBLANK,LINE1);
				displaymessage(LMINITIALIZE,LINE2);
				initfpsystem();				
				displaymessage(LMBLANK,LINE1);
				displaymessage(LMSYSINITOK,LINE2);
				
				delayTimerh(TMSGWAITTIME);


				setsysinitdisp();
			}
		}
	}
}
//////////////////////////////////////////////////////////////
void setidcleardisp()
{
	if(!submenuflag)
	{
		setupitem=SETCLEARID;
		displaymessage(LMIDCLEAR,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		displaymessage(LMYESNO,LINE2);
	}
}

//////////////////////////////////////////////////////////////
void setidclear()
{
	if(keynumber==0xff)setidcleardisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				//setidclear(0xff);
				setidcleardisp();
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)settscleardisp();
			else if(keynumber==NUMBER4)setsysinitdisp();
		}
		else
		{
			if((keynumber==ENTER)||(keynumber==CANCEL)||(keynumber==NUMBER0))
			{
				//submenuflag=0;
				clearsetup();
				setidcleardisp();
				//setidclear(0xff);
			}
			else if(keynumber==NUMBER1)
			{
				submenuflag=0;
				//here clear all the id registered
				//deletealluser();
				//rdeletealluser();
				displaymessage(LMBLANK,LINE1);
				displaymessage(LMUSERCLEANING,LINE2);
				
				userclear();
				setidcleardisp();
			}
		}
	}
}
////////////////////////////////////////////////////
void settscleardisp()
{
	if(!submenuflag)
	{
		setupitem=SETCLEARTS;
		displaymessage(LMTSCLEAR,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		displaymessage(LMYESNO,LINE2);
	}
}
////////////////////////////////////////////////////
void settsclear()
{
	if(keynumber==0xff)settscleardisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				//settsclear(0xff);
				settscleardisp();
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setkeyindisp();
			else if(keynumber==NUMBER4)setidcleardisp();
		}
		else
		{
			if((keynumber==ENTER)||(keynumber==CANCEL)||(keynumber==NUMBER0))
			{
				//submenuflag=0;
				//settsclear(0xff);
				clearsetup();
				settscleardisp();
			}
			else if(keynumber==NUMBER1)
			{
				submenuflag=0;
				//here clear the ts
				clearts();
				settscleardisp();
			}
		}
	}
}
//////////////////////////////////////////////////////////////////////////////
unsigned char code tblkeyinsel[2]={LMDISABLE,LMENABLE};
//////////////////////////////////////////////////////////////////////////////
void setkeyindisp()
{
	if(!submenuflag)
	{
		setupitem=SETKEYIN;
		displaymessage(LMSETKEYIN,LINE1);
		displaymessage(tblkeyinsel[readpinkeyin()],LINE2);
	}
	else
	{
		dispselectmessage(tblkeyinsel[setcount]);
	}
}
//////////////////////////////////////////////////////////////////////////////
void setkeyin()
{
	if(keynumber==0xff)setkeyindisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;

⌨️ 快捷键说明

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