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

📄 setup.c

📁 指纹识别源代码,用于智能门紧,还有配合MF800卡使用
💻 C
📖 第 1 页 / 共 5 页
字号:
				{
					displaymessage(LMBLANK,LINE1);
					displaymessage(LMIDLISTBOTTOM,LINE2);
					delayTimerh(TMSGWAITTIME);
					//getuserbysn();
					readuserdata(currentsn);
					setidlistdisp();
				}
				
			}
			else if(keynumber==NUMBER4)
			{
				if(getusedsn(UPWARD))setidlistdisp();
				else
				{
					displaymessage(LMBLANK,LINE1);
					displaymessage(LMIDLISTTOP,LINE2);
					delayTimerh(TMSGWAITTIME);
					readuserdata(currentsn);
					setidlistdisp();
				}
			}
		}
	}
}
////////////////////////////////////////////////////////////////////////////
void setidcountdisp()
{
	unsigned short idcount;
	if(!submenuflag)
	{
		setupitem=SETIDCOUNT;
		displaymessage(LMIDCOUNT,LINE1);
		displaymessage(LMBLANK,LINE2);
		idcount=getusernum();
		displayshort(idcount,4,21);
	}
}
////////////////////////////////////////////////////////////////////////////
void setidcount()
{
	if(keynumber==0xff)setidcountdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)seteventcountdisp();
			else if(keynumber==NUMBER4)setidlistdisp();
		}
	}
}
//////////////////////////////////////////////////////////////////////////
void seteventcountdisp()
{
	setupitem=SETEVENTCOUNT;
	displaymessage(LMEVENTCOUNT,LINE1);
	displayshort(getneweventnum(),4,21);
	//here display event count

}
//////////////////////////////////////////////////////////////////////////
void seteventcount()
{
	if(keynumber==0xff)seteventcountdisp();
	else
	{
		if(keynumber==CANCEL)terminatesetup();
		else if(keynumber==NUMBER6)setidregisterdisp();
		else if(keynumber==NUMBER4)setidcountdisp();
	}
}
////////////////////////////////////////////////////////////////////
void setfwverdisp()
{
	setupitem=SETFWVER;
	displaymessage(LMFWVER,LINE1);
	displaymessage(LMV100,LINE2);
	displaybcd(VERHIGH,22);
	displaybcd(VERLOW,25);
}
////////////////////////////////////////////////////////////////////
void setfwver()
{
	if(keynumber==0xff)setfwverdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setramtestdisp();
			else if(keynumber==NUMBER4)setcommtestdisp();
		}
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////
void setramtestdisp()
{
	if(!submenuflag)
	{
		setupitem=SETRAMTEST;
	
		displaymessage(LMRAMTEST,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////
void setramtest()
{
	if(keynumber==0xff)setramtestdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				//here start ram test
				//setramtest(0xff)
				submenuflag=1;
				displaymessage(LMRAMTESTBANK,LINE1);
				displaymessage(LMRAMTESTING,LINE2);
				if(sramtest())
				{
					displaymessage(LMRAMTESTOK,LINE1);
					displaymessage(LMPRESSKEY,LINE2);
				}
				else
				{
					displaymessage(LMRAMTESTFAIL,LINE1);
					displaymessage(LMPRESSKEY,LINE2);
				}
				//setramtestdisp();
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setouttestdisp();
			else if(keynumber==NUMBER4)setfwverdisp();
		}
		else
		{
			submenuflag=0;
			setramtestdisp();
		}
	}
}
/////////////////////////////////////////////////////////////////////////////////////
void outtest()
{
	unsigned char i;
	for(i=0;i<5;i++)
	{
		displaymessage(LMOUTTESTDISP,LINE1);
		displayshort(i,1,12);
		displaymessage(LMOUTTESTON,LINE2);
		set_373(i);
		delayTimerh(T100MS);
		displaymessage(LMOUTTESTOFF,LINE2);
		clr_373(i);
		delayTimerh(T100MS);
		displaymessage(LMOUTTESTON,LINE2);
		set_373(i);
		delayTimerh(T100MS);
		displaymessage(LMOUTTESTOFF,LINE2);
		clr_373(i);
		delayTimerh(T100MS);
	}
	displaymessage(LMPRESSKEY,LINE2);
}
/////////////////////////////////////////////////////////////////////////////
void setouttestdisp()
{
	if(!submenuflag)
	{
		setupitem=SETOUTTEST;
		displaymessage(LMOUTTEST,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
	}
}
/////////////////////////////////////////////////////////////////////////////////////
void setouttest()
{
	if(keynumber==0xff)setouttestdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				//here start the outport test
				//setouttest(0xff);
				//setouttestdisp();
				submenuflag=1;
				outtest();
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setlcdtestdisp();
			else if(keynumber==NUMBER4)setramtestdisp();
		}
		else
		{
			submenuflag=0;
			setouttestdisp();
		}
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////
void lcdtest()
{
	unsigned char i,j;
	
	for(i=0;i<64;i++)
	{
		for(j=0;j<32;j++)
		{
			dispbuff[LINE1][j]=i+j+0x20;
		}
		display(LINE1);
		display(LINE2);
		
		delayTimerh(T200MS);
	}
	
	displaymessage(LMBLANK,LINE1);
	displaymessage(LMPRESSKEY,LINE2);
}
//////////////////////////////////////////////////////////////////////////////////////////////
void setlcdtestdisp()
{
	if(!submenuflag)
	{
		setupitem=SETLCDTEST;
		displaymessage(LMLCDTEST,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////
void setlcdtest()
{
	if(keynumber==0xff)setlcdtestdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				//here start the lcd test
				submenuflag=1;
				lcdtest();
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setkeytestdisp();
			else if(keynumber==NUMBER4)setouttestdisp();
		}
		else
		{
			submenuflag=0;
			setlcdtestdisp();
		}
	}
}
///////////////////////////////////////////////////////////////////////////
void setkeytestdisp()
{
	if(!submenuflag)
	{
		setupitem=SETKEYTEST;
	
		displaymessage(LMKEYTEST,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		display(LINE2);
	}
}
///////////////////////////////////////////////////////////////////////////
unsigned char code keynumbertesttbl[16]={"0123456789ABCDEF"};

void setkeytest()
{
	unsigned char i;

	if(keynumber==0xff)setkeytestdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				displaymessage(LMKEYTESTDISP,LINE2);
				displaymessage(LMBLANK,LINE1);
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setreadertestdisp();
			else if(keynumber==NUMBER4)setlcdtestdisp();
		}
		else
		{
			
			dispbuff[1][keynumber]=0x20;
			display(LINE2);
			{
				for(i=0;i<16;i++)
				{
					if(dispbuff[1][i]!=0x20)break;
				}

				if(i==16)
				{
					submenuflag=0;
					setkeytestdisp();
				}
			}
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////
void setreadertestdisp()
{
	if(!submenuflag)
	{
		setupitem=SETREADERTEST;
	
		displaymessage(LMREADERTEST,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		//here display the reader test result
		displaymessage(LMSCANID,LINE2);
		displaymessage(LMBLANK,LINE1);
	}
}
////////////////////////////////////////////////////////////////////////////////////
void setreadertest()
{
	if(keynumber==0xff)setreadertestdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				//setreadertest(0xff);
				setreadertestdisp();
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setintestdisp();
			else if(keynumber==NUMBER4)setkeytestdisp();
		}
		else
		{
			if((keynumber==ENTER)||(keynumber==CANCEL))
			{
				//submenuflag=0;
				clearsetup();
				//setreadertest(0xff);
				setreadertestdisp();
			}
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////
void setintestdisp()
{
	unsigned char i;
	if(!submenuflag)
	{
		setupitem=SETINTEST;
	
		displaymessage(LMINTEST,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		for(i=0;i<5;i++)
		{
			if(instate&bittbl[i])
			{
				dispbuff[LINE2][3+2*i]=0x31;
			}
			else
			{
				dispbuff[LINE2][3+2*i]=0x30;
			}
		}
		display(LINE2);
	}
}
////////////////////////////////////////////////////////////////////////////////////
void setintest()
{
	if(keynumber==0xff)setintestdisp();
	else
	{
		if(!submenuflag)
		{
			if(keynumber==ENTER)
			{
				submenuflag=1;
				//here start in test
				
				setintestdisp();
				//setcount=0xff;
			}
			else if(keynumber==CANCEL)terminatesetup();
			else if(keynumber==NUMBER6)setcommtestdisp();
			else if(keynumber==NUMBER4)setreadertestdisp();
		}
		else
		{
			if((keynumber==ENTER)||(keynumber==CANCEL))
			{
				//submenuflag=0;
				clearsetup();
				//setintest(0xff);
				setintestdisp();

			}
		}
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void setcommtestdisp()
{
	if(!submenuflag)
	{
		setupitem=SETCOMMTEST;
	
		displaymessage(LMCOMMTEST,LINE1);
		displaymessage(LMBLANK,LINE2);
	}
	else
	{
		displaymessage(LMBLANK,LINE1);
		displaymessage(LMCOMMTESTING,LINE2);
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void setcommtest()
{
	unsigned char temptime,temptime1;
	unsigned char tempcrclow,tempcrchigh;
	unsigned short datalen;
	if(!submenuflag)
	{
		if(keynumber==ENTER)
		{
			submenuflag=1;

			setcommtestdisp();
			ackpccmd(DCRCHECKLINK,RETOK,0);
			temptime=timerh;
			temptime1=timerh;
			while((timerh-temptime)<TWAITPCOKTIME)
			{
				if((timerh-temptime1)>T500MS)
				{
					temptime1=timerh;
					ackpccmd(DCRCHECKLINK,RETOK,0);
				}
				if(rxd0packflag)
				{
	
					rxd0packflag=0;
					datalen=(uart0buff[2]<<8)|uart0buff[1];
					tempcrclow=uart0buff[datalen+1];
					tempcrchigh=uart0buff[datalen+2];
					checkcrc(datalen);
					if(tempcrclow==uart0buff[datalen+1]&&tempcrchigh==uart0buff[datalen+2]&&uart0buff[PCPACKAGEIDP]==readcommid())
					{
						if(uart0buff[PCPACKAGECMDP]==PCOK)
						{
							displaymessage(LMCOMMPASS,LINE1);
							displaymessage(LMPRESSKEY,LINE2);
							return;
					 	}
					}
					//else
					//{
					//	displaymessage(LMCOMMFAIL,LINE1);
					//	displaymessage(LMPRESSKEY,LINE2);
					//	return;
					//}
				}
			}
			displaymessage(LMCOMMFAIL,LINE1);
			displaymessage(LMPRESSKEY,LINE2);
		}
		else if(keynumber==CANCEL)terminatesetup();
		else if(keynumber==NUMBER6)setfwverdisp();
		else if(keynumber==NUMBER4)setintestdisp();
	}
	else
	{
		clearsetup();
		setcommtestdisp();
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
void powerinitpassdisp()
{
	setflag=1;
	setupitem=SETPOWERINITPASS;
	displaymessage(LMMASTERPASS,LINE1);
	displaymessage(LMMASTERPASSIN,LINE2);
	lcdcuron(MASTERPASSSTARTP,LINE2);
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void masterpassdisp()
{	
	setflag=1;
	setupitem=SETMASTERPASS;
	displaymessage(LMMASTERPASS,LINE1);
	displaymessage(LMMASTERPASSIN,LINE2);
	//write_command(SET_DDRAM_ADD+0X46);	//display(LINE2);
	//write_command(DISP_ON_NCUR_B);
	lcdcuron(MASTERPASSSTARTP,LINE2);
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void masterpasserr()
{
	accessevent(eventtype|MESSAGEDENIED);
	//here need do sth else???????
	
	clearsetup();
	setflag=0;
	//lcdback();
	//displaymessage(LMMAIN,LINE1);
	displayMain();
	displaytime();
}
//////////////////////////////////////////////////////////////////////////////////////////////////
bit checkmasterpass()
{
	keybuff[0]=(keybuff[0]<<4)+keybuff[1];
	keybuff[1]=(keybuff[2]<<4)+keybuff[3];
	if(readmasterchange())
	{
		readuserdata(MASTERUSERSN);
		if(tempbuff[12]!=keybuff[0])return FALSE;
		if(tempbuff[13]!=keybuff[1])return FALSE;
		return TRUE;
	}
	else
	{
		if(keybuff[0]!=MASTERPASSHIGH)return FALSE;
		if(keybuff[1]!=MASTERPASSLOW)return FALSE;
		return TRUE;
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void setmasterpass()
{
	if((keynumber==CANCEL)||(keynumber==ENTER))terminatesetup();
	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;
			if(!checkmasterpass())
			{
				masterpasserr();
			}
			else
			{
				if(readfpmode()&&readmasterchange())
				{
					currentsn=0x9999;
					//displaymessage(LMBLANK,LINE1);
					//displ

⌨️ 快捷键说明

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