📄 setup.c
字号:
else if(keynumber==NUMBER6)setmodeindexdisp();
else if(keynumber==NUMBER4)setiodefdisp();
}
else
{
if(!submenu1flag)
{
if(keynumber==ENTER)
{
submenu1flag=1;
subsetcount=0;
//here blink the cursor
lcdcuron(tbltsholindexposi[subsetcount],LINE2);
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
settsholindexdisp();
}
else if(keynumber==4)
{
setcount--;
if(setcount>=MAXTSGROUP)setcount=MAXTSGROUP-1;
settsholindexdisp();
}
else if(keynumber==6)
{
setcount++;
if(setcount>=MAXTSGROUP)setcount=0;
settsholindexdisp();
}
}
else
{
if(keynumber==ENTER)
{
//do nothing
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
settsholindexdisp();
}
else
{
dispbuff[LINE2][tbltsholindexposi[subsetcount]]=keynumber+0x30;
display(LINE2);
subsetcount++;
lcdcuron(tbltsholindexposi[subsetcount],LINE2);
if(subsetcount>=2)
{
//here save the iodef data
checksavetsholindex(setcount);
submenuflag=1;
submenu1flag=0;
settsholindexdisp();
}
}
}
}
}
}
//////////////////////////////////////////////////////////////////
void checksavemodeindex()
{
unsigned char tempdata;
tempdata=(dispbuff[LINE2][MODEINDEXP]-0X30)*10+dispbuff[LINE2][MODEINDEXP+1]-0X30;
if(tempdata>=MAXMODEINDEX)return;
ram_writep0(MODEINDEX,tempdata);
}
//////////////////////////////////////////////////////////////////
void setmodeindexdisp()
{
if(!submenuflag)
{
setupitem=SETMODEINDEX;
displaymessage(LMSETMODEINDEX,LINE1);
displaymessage(LMBLANK,LINE2);
displayshort(readmodeindex(),2,MODEINDEXP+16);
}
else
{
display(LINE2);
}
}
//////////////////////////////////////////////////////////////////
void setmodeindex()
{
if(keynumber==0xff)setmodeindexdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=0;
//setmodeindexdisp();
//here blink the cursor
//displayshort(ram_read(MODEINDEXP,0),2,MODEINDEXP+16);
lcdcuron(MODEINDEXP,LINE2);
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)settsdisp();
else if(keynumber==NUMBER4)settsholindexdisp();
}
else
{
if(keynumber==ENTER)
{
//unsigned char tempindex;
//submenuflag=0;
//tempindex=dispbuff[1][5]*10+dispbuff[1][6];
//if((tempindex)&&(tempindex<=10))ram_write(MODEINDEX,0,tempindex);
//setmodeindexdisp();
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setmodeindexdisp();
}
else
{
dispbuff[LINE2][MODEINDEXP+setcount]=keynumber+0x30;
display(LINE2);
setcount++;
lcdcuron(MODEINDEXP+setcount,LINE2);
if(setcount>=2)
{
checksavemodeindex();
submenuflag=0;
setmodeindexdisp();
}
}
}
}
}
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void setidregisterdisp()
{
if(!submenuflag)
{
setupitem=SETIDREGISTER;
displaymessage(LMIDREGISTRATION,LINE1);
displaymessage(LMBLANK,LINE2);
}
else
{
if(!submenu1flag)
{
displaymessage(LMKEYINID,LINE1);
displaymessage(LMHHHHHHHH,LINE2);
lcdcuron(KEYINSTARTP,LINE2);
}
else
{
//displayshort(userid,4,6);
//display(LINE2);
}
}
}
//////////////////////////////////////////////////////////////
unsigned char code tblsetuser[]={2,3,4,5,8,9,12,15};
//////////////////////////////////////////////////////////////
void registerid()
{
getidfromlcd();
if(checkismaster())
{
displaymessage(LMBLANK,LINE1);
displaymessage(LMISMASTERID,LINE2);
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setidregisterdisp();
}
else if(getuserbyid())
{
//prompt the user id is registered!
displaymessage(LMBLANK,LINE1);
displaymessage(LMIDREGISTERED,LINE2);
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setidregisterdisp();
}
else
{
displaymessage(LMBLANK,LINE1);
displayuserid();
displaymessage(LMUSERSETUP,LINE2);
lcdcuron(tblsetuser[subsetcount],LINE2);
}
}
//////////////////////////////////////////////////////////////////////////////
void setidregister()
{
if(keynumber==0xff)setidregisterdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=0;
subsetcount=0;
setidregisterdisp();
//displaymessage(LMKEYINID,LINE1);
//displaymessage(LMHHHHHHHH,LINE2);
//lcdcuron(KEYINSTARTP,LINE2);
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setiddeletedisp();
else if(keynumber==NUMBER4)seteventcountdisp();
}
else
{
if(!submenu1flag)
{
if(keynumber==ENTER)
{
if(setcount>=MINUSERIDLEN)
{
if(setcount<=MAXUSERIDLEN)
{
submenu1flag=1;
subsetcount=0;
registerid();
}
}
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setidregisterdisp();
}
else
{
dispbuff[1][KEYINSTARTP+setcount]=keynumber+0x30;
setcount++;
display(LINE2);
lcdcuron(KEYINSTARTP+setcount,LINE2);
if(setcount>=8)
{
submenu1flag=1;
subsetcount=0;
registerid();
}
}
}
else
{
if(keynumber==ENTER)
{
//do nothing
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setidregisterdisp();
}
else
{
dispbuff[1][tblsetuser[subsetcount]]=keynumber+0x30;
subsetcount++;
display(LINE2);
lcdcuron(tblsetuser[subsetcount],LINE2);
if(subsetcount>=8)
{
//here save the ts data
tempbuff[0]=userid[0];
tempbuff[1]=userid[1];
tempbuff[2]=userid[2];
tempbuff[3]=userid[3];
tempbuff[4]=((dispbuff[LINE2][2]-0x30)<<4)+dispbuff[LINE2][3]-0x30;
tempbuff[5]=((dispbuff[LINE2][4]-0x30)<<4)+dispbuff[LINE2][5]-0x30;
tempbuff[6]=(dispbuff[LINE2][8]-0x30)*10+dispbuff[LINE2][9]-0x30;
tempbuff[7]=((dispbuff[LINE2][12]-0x30)<<4)+dispbuff[LINE2][15]-0x30;
if(tempbuff[6]>=MAXTSSEL)
{
clearsetup();
setidregisterdisp();
return;
}
tempbuff[6]+=0xf0;
idata2idata(tempbuff,keybuff,8);
if(readfpmode()&&(tempbuff[7]&0xf))
{
currentsn=0xffff;
if(!getemptysn(DOWNWARD))
{
//prompt user space if full
displaymessage(LMBLANK,LINE1);
displaymessage(LMUSERSPACEFULL,LINE2);
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setidregisterdisp();
return;
}
if(rgetuserbysn(GETUSERNOFINGER))
{
rdeleteuserbysn();
}
if(!registerfp())
{
displaymessage(LMBLANK,LINE1);
displaymessage(LMIDREGISTERFAIL,LINE2);
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setidregisterdisp();
return;
}
idata2idata(keybuff,tempbuff,8);
writeuserdata(currentsn);
}
else
{
tempbuff[7]&=0xf0;
if(!adduser())
{
//prompt user space is full
displaymessage(LMBLANK,LINE1);
displaymessage(LMUSERSPACEFULL,LINE2);
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setidregisterdisp();
return;
}
}
displaymessage(LMBLANK,LINE1);
displaymessage(LMIDREGISTED,LINE2);
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setidregisterdisp();
}
}
}
}
}
}
///////////////////////////////////////////////////////////////////////
void checkdeleteid()
{
getidfromlcd();
if(checkismaster())
{
displaymessage(LMBLANK,LINE1);
displaymessage(LMISMASTERID,LINE2);
}
else if(deleteuserbyid())
{
displaymessage(LMBLANK,LINE1);
displaymessage(LMIDDELETEED,LINE2);
if(rdeleteuserbysn())
{
}
else
{
}
}
else
{
displaymessage(LMBLANK,LINE1);
displaymessage(LMUNREGISTEDID,LINE2);
}
}
///////////////////////////////////////////////////////////////////////
void setiddeletedisp()
{
if(!submenuflag)
{
setupitem=SETIDDELETE;
displaymessage(LMIDDELETE,LINE1);
displaymessage(LMBLANK,LINE2);
}
else
{
displaymessage(LMINPUTID,LINE1);
displaymessage(LMHHHHHHHH,LINE2);
lcdcuron(KEYINSTARTP,LINE2);
}
}
///////////////////////////////////////////////////////////////////////
void setiddelete()
{
if(keynumber==0xff)setiddeletedisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
clearsetup();
submenuflag=1;
setiddeletedisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setidlistdisp();
else if(keynumber==NUMBER4)setidregisterdisp();
}
else
{
if(keynumber==ENTER)
{
if(setcount>=MINIDLEN)
{
checkdeleteid();
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setiddeletedisp();
}
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setiddeletedisp();
}
else
{
dispbuff[LINE2][KEYINSTARTP+setcount]=keynumber+0x30;
setcount++;
display(LINE2);
lcdcuron(KEYINSTARTP+setcount,LINE2);
if(setcount>=MAXIDLEN)
{
//HERE delete the user
checkdeleteid();
delayTimerh(TMSGWAITTIME);
clearsetup();
submenuflag=1;
setiddeletedisp();
}
//setiddeletedisp();
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////
void displayuserid()
{
dispbuff[LINE1][5]=(userid[0]>>4)+0x30;
dispbuff[LINE1][6]=(userid[0]&0xf)+0x30;
dispbuff[LINE1][7]=(userid[1]>>4)+0x30;
dispbuff[LINE1][8]=(userid[1]&0xf)+0x30;
dispbuff[LINE1][9]=(userid[2]>>4)+0x30;
dispbuff[LINE1][10]=(userid[2]&0xf)+0x30;
dispbuff[LINE1][11]=(userid[3]>>4)+0x30;
dispbuff[LINE1][12]=(userid[3]&0xf)+0x30;
display(LINE1);
}
/////////////////////////////////////////////////////////////////////////////////
void displayuser()
{
struct userdata * data puser;
puser=(struct userdata*)(tempbuff+8);
displaybcd(puser->userid[0],5);
displaybcd(puser->userid[1],7);
displaybcd(puser->userid[2],9);
displaybcd(puser->userid[3],11);
displaybcd(puser->password[0],16);
displaybcd(puser->password[1],18);
displaybcd((puser->newts)&0xf,22);
displaybcd(((puser->readerfp)>>4),26);
displaybcd(((puser->readerfp)&0x1),29);
dispbuff[LINE2][13]=0X20;
display(LINE2);
}
/////////////////////////////////////////////////////////////////////////////////
void setidlistdisp()
{
if(!submenuflag)
{
setupitem=SETIDLIST;
displaymessage(LMIDLIST,LINE1);
displaymessage(LMBLANK,LINE2);
}
else
{
if(currentsn>=MAXUSERNUM)
{
if(!getusedsn(DOWNWARD))
{
//return ;
displaymessage(LMIDEMPTY,LINE2);
displaymessage(LMBLANK,LINE1);
delayTimerh(TMSGWAITTIME);
clearsetup();
displaymessage(LMIDLIST,LINE1);
displaymessage(LMBLANK,LINE2);
return;
}
}
displaymessage(LMBLANK,LINE1);
displaymessage(LMBLANK,LINE2);
displayuser();
//else return;
}
}
/////////////////////////////////////////////////////////////////////////////////
void setidlist()
{
if(keynumber==0xff)setidlistdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
//currentsn=0xffff;
submenuflag=1;
//setidlist(0xff);
currentsn=0xffff;
setidlistdisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setidcountdisp();
else if(keynumber==NUMBER4)setiddeletedisp();
}
else
{
if((keynumber==ENTER)||(keynumber==CANCEL))
{
//submenuflag=0;
clearsetup();
setidlistdisp();
}
else if(keynumber==NUMBER6)
{
if(getusedsn(DOWNWARD))setidlistdisp();
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -