?? setup.c
字號(hào):
#include "reg58.h"
#include "intrins.h"
#define _SETUP_C_
#include "setup.h"
#include "lcd.h"
#include "keypad.h"
#include "system.h"
#include "finger.h"
#include "rxd.h"
#include "define.h"
#include "sram.h"
#include "event.h"
#include "keypad.h"
#include "ts.h"
#include "user.h"
#include "clock.h"
#include "inout.h"
#include "373.h"
#include "timer.h"
#include "inout.h"
#include "pccomm.h"
#include "modem.h"
unsigned char data setupitem;
unsigned char data subsetcount;
unsigned char data setcount;
unsigned short data setcount16;
unsigned short data currentsn;
bit submenuflag,submenu1flag,setflag;
unsigned char code secumodesel[MAXSETMODESEL]={LMIDONLY,LMFPONLY,LMIDFP,LMIDPWFP};
////////////////////////////////////////////////////////////////////////////////////
void getidfromlcd()
{
tempbuff[0]=0;
tempbuff[1]=0;
tempbuff[2]=0;
tempbuff[3]=0;
tempbuff[4]=0;
tempbuff[5]=0;
tempbuff[6]=0;
tempbuff[7]=0;
idata2idata(dispbuff[LINE2]+MASTERIDSTARTP,tempbuff+8-setcount,setcount);
userid[0]=(tempbuff[0]<<4)+(tempbuff[1]&0xf);
userid[1]=(tempbuff[2]<<4)+(tempbuff[3]&0xf);
userid[2]=(tempbuff[4]<<4)+(tempbuff[5]&0xf);
userid[3]=(tempbuff[6]<<4)+(tempbuff[7]&0xf);
}
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
void clearsetup()
{
submenuflag=0;
submenu1flag=0;
setcount=0;
subsetcount=0;
setcount16=0;
}
///////////////////////////////////////////////////////////////////////////
void terminatesetup()
{
setflag=0;
passinflag=0;
clearsetup();
//lcdback();
//displaymessage(LMMAIN,LINE1);
displayMain();
displaytime();
}
///////////////////////////////////////////////////////////////////////////
void setmodedisp()
{
if(!submenuflag)
{
setupitem=SETMODE;
displaymessage(LMMODESELECT,LINE1);
setcount=readsecumode();
displaymessage(secumodesel[setcount],LINE2);
}
else
{
dispselectmessage(secumodesel[setcount]);
}
}
///////////////////////////////////////////////////////////////////////////
void setmode() //ok
{
if(keynumber==0xff)setmodedisp(); //display
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=readsecumode();
dispselectmessage(secumodesel[setcount]);
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)settimedisp();
else if(keynumber==NUMBER4)setkeyindisp();
}
else
{
if(keynumber==ENTER)
{
ram_writep0(SECUMODE,setcount);
submenuflag=0;
//setmode(0xff);
setmodedisp();
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setmodedisp();
//setmode(0xff);
}
else if(keynumber==NUMBER6)
{
setcount++;
if(setcount>(MAXSETMODESEL-1))setcount=0;
dispselectmessage(secumodesel[setcount]);
}
else if(keynumber==NUMBER4)
{
setcount--;
if(setcount>(MAXSETMODESEL-1))setcount=MAXSETMODESEL-1;
dispselectmessage(secumodesel[setcount]);
}
}
}
}
///////////////////////////////////////////////////////////////////////////
void settimedisp()
{
if(!submenuflag)
{
setupitem=SETTIME;
displaymessage(LMTIMESET,LINE1);
displaytimeee();
}
else
{
display(LINE2);
}
}
///////////////////////////////////////////////////////////////////////////
void settime() //ok
{
if(keynumber==0xff)settimedisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
displaymessage(LMTIMEFORMAT,LINE1);
setcount=0;
displaymessage(LMBLANK,LINE2);
lcdcuron(0,LINE2);
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)settypedisp();
else if(keynumber==NUMBER4)setmodedisp();
}
else
{
if(keynumber==ENTER)
{
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
//settime(0xff);
settimedisp();
}
else
{
//dispbuff[1][setcount]=keynumber+0x30;
//setcount++;
//if(setcount>=15)setcount=0;
//settimedisp();
dispbuff[LINE2][setcount]=keynumber+0x30;
//displaybyte('*',MASTERPASSSTARTP+setcount+0x40+SET_DDRAM_ADD);
display(LINE2);
setcount++;
lcdcuron(setcount,LINE2);
if(setcount>=MAXSETTIMECOUNT)
{
checksavedate();
submenuflag=0;
settimedisp();
}
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////
unsigned char code typemodesel[]={LMNUSED,LMUSED};
////////////////////////////////////////////////////////////////////////////////////
void settypedisp()
{
if(!submenuflag)
{
setupitem=SETTYPE;
displaymessage(LMTYPESELECT,LINE1);
setcount=readfpmode();
displaymessage(typemodesel[setcount],LINE2);
}
else
{
dispselectmessage(typemodesel[setcount]);
}
}
///////////////////////////////////////////////////////////////////////////
void settype() //ok
{
if(keynumber==0xff)settypedisp(); //display
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=readfpmode();
dispselectmessage(typemodesel[setcount]);
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setapbdisp();
else if(keynumber==NUMBER4)settimedisp();
}
else
{
if(keynumber==ENTER)
{
ram_writep0(FPMODE,setcount);
submenuflag=0;
//settype(0xff);
settypedisp();
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
settypedisp();
//settype(0xff);
}
else if(keynumber==NUMBER6)
{
setcount++;
if(setcount>(MAXSETTYPESEL-1))setcount=0;
dispselectmessage(typemodesel[setcount]);
}
else if(keynumber==NUMBER4)
{
setcount--;
if(setcount>(MAXSETTYPESEL-1))setcount=MAXSETTYPESEL-1;
dispselectmessage(secumodesel[setcount]);
}
}
}
}
///////////////////////////////////////////////////////////////////////////
void dispselectmessage(unsigned char lm)
{
//buffcopy((unsigned char*)dispmessage[lm],(unsigned char*)(dispbuff[1]+2),14);
//code2idata((unsigned char code *)dispmessage[lm],(unsigned char idata*)(dispbuff[1]+2),14);
unsigned char i;
for(i=0;i<14;i++)
{
dispbuff[LINE2][i+2]=dispmessage[lm][i];
}
dispbuff[1][0]='-';
dispbuff[1][1]='>';
display(LINE2);
}
////////////////////////////////////////////////////////////////////////////////////
unsigned char code tblapb[]={LMNUSED,LMUSED};
////////////////////////////////////////////////////////////////////////////////////
void setapbdisp()
{
if(!submenuflag)
{
setupitem=SETAPB;
displaymessage(LMSETAPB,LINE1);
//setcount=ram_readp0(APBMODE);
setcount=readapbmode();
displaymessage(tblapb[setcount],LINE2);
}
else
{
dispselectmessage(tblapb[setcount]);
}
}
////////////////////////////////////////////////////////////////////////////////////
void setapb() //ok
{
if(keynumber==0xff)setapbdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setapbdisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setcommiddisp();
else if(keynumber==NUMBER4)settypedisp();
}
else
{
if(keynumber==ENTER)
{
submenuflag=0;
ram_writep0(APBMODE,setcount);
setapbdisp();
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
//setapb(0xff);
setapbdisp();
}
else if(keynumber==NUMBER6)
{
setcount++;
if(setcount>=MAXSETAPBSEL)setcount=0;
setapbdisp();
//setapb(0xff);
}
else if(keynumber==NUMBER4)
{
setcount--;
if(setcount>=MAXSETAPBSEL)setcount=MAXSETAPBSEL-1;
setapbdisp();
//setapb(0xff);
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
void setcommiddisp()
{
if(!submenuflag)
{
setupitem=SETCOMMID;
displaymessage(LMSETCOMMID,LINE1);
displaymessage(LMBLANK,LINE2);
displayshort((unsigned short)readcommid(),2,23);
}
else
{
display(LINE2);
}
}
/////////////////////////////////////////////////////////////////////////////////////
void setcommid()
{
unsigned char tempdata;
if(keynumber==0xff)setcommiddisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=0;
//here blink the cursor
lcdcuron(COMMIDSTARTP,LINE2);
//setcommiddisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setduressdisp();
else if(keynumber==NUMBER4)setapbdisp();
}
else
{
if(keynumber==ENTER)
{
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setcommiddisp();
}
else
{
dispbuff[LINE2][COMMIDSTARTP+setcount]=keynumber+0x30;
setcount++;
display(LINE2);
lcdcuron(setcount+COMMIDSTARTP,LINE2);
if(setcount>=2)
{
tempdata=( dispbuff[LINE2][COMMIDSTARTP]-0X30)*10+dispbuff[LINE2][COMMIDSTARTP+1]-0x30;
if(tempdata<MAXCOMMID)
{
ram_writep0(COMMID,tempdata);
}
submenuflag=0;
setcommiddisp();
}
//setcommiddisp();
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
unsigned char code tblduress[]={LMNUSED,LMUSED};
////////////////////////////////////////////////////////////////////////////////
void setduressdisp()
{
if(!submenuflag)
{
setupitem=SETDURESS;
displaymessage(LMSETDURESS,LINE1);
displaymessage(tblduress[readduress()],LINE2);
}
else
{
dispselectmessage(tblduress[setcount]);
}
}
////////////////////////////////////////////////////////////////////////////////
void setduress() //ok
{
if(keynumber==0xff)setduressdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=readduress();
//setduress(0xff);
dispselectmessage(tblduress[setcount]);
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setbaudratedisp();
else if(keynumber==NUMBER4)setcommiddisp();
}
else
{
if(keynumber==ENTER)
{
submenuflag=0;
ram_writep0(DURESSMODE,setcount);
if(setcount)setduresspwdisp();
else setduressdisp(); //setduress(0xff);
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setduressdisp();
}
else if(keynumber==NUMBER6)
{
setcount++;
if(setcount>=MAXDURESSSEL)setcount=0;
setduressdisp();
}
else if(keynumber==NUMBER4)
{
setcount--;
if(setcount>=MAXDURESSSEL)setcount=MAXDURESSSEL-1;
setduressdisp();
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////
/*void displaybcd(unsigned char * pbcddata,unsigned char count,unsigned char startposi)
{
unsigned char i,line;
if(startposi>=32)return;
if(startposi>=16)
{
line=LINE2;
startposi-=16;
}
else line=LINE1;
for(i=0;i<count;i++)
{
if(i&1)dispbuff[line][i+startposi]=*(pbcddata+i/2)&0xf+0x30;
else dispbuff[line][i+startposi]=*(pbcddata+i/2)>>4+0x30;
}
}*/
/////////////////////////////////////////////////////////////////////////////////
void setduresspwdisp()
{
if(!submenuflag)
{
setupitem=SETDURESSPW;
displaymessage(LMSETDURESSPW,LINE1);
displaymessage(LMBLANK,LINE2);
//here display the password
displayshort(readduresspw(),2,23);
}
else
{ //here display the edited password
display(LINE2);
}
}
/////////////////////////////////////////////////////////////////////////////////
void setduresspw()
{
unsigned char tempdata;
if(keynumber==0xff)setduresspwdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=0;
lcdcuron(DURESSPWSTARTP,LINE2);
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setbaudratedisp();
else if(keynumber==NUMBER4)setduressdisp();
}
else
{
if(keynumber==ENTER)
{
//submenuflag=0;
//here save the new duress password
//setduresspw(0xff);
//ram_write(DURESSPASS,0,dispbuff[1][7]*10+dispbuff[1][8]);
//setduresspwdisp();
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
//setduresspw(0xff);
setduresspwdisp();
}
else
{
dispbuff[LINE2][DURESSPWSTARTP+setcount]=keynumber+0x30;
setcount++;
display(LINE2);
lcdcuron(setcount+DURESSPWSTARTP,LINE2);
if(setcount>=2)
{
tempdata=( dispbuff[LINE2][DURESSPWSTARTP]-0X30)*10+dispbuff[LINE2][DURESSPWSTARTP+1]-0x30;
if(tempdata<MAXDURESSPASS)
{
ram_writep0(DURESSPW,tempdata);
}
submenuflag=0;
setduresspwdisp();
}
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////
unsigned char code tblbaud[]={LM9600,LM19200,LM38400,LM4800};
/////////////////////////////////////////////////////////////////////////////////
void setbaudratedisp()
{
if(!submenuflag)
{
setupitem=SETBAUDRATE;
displaymessage(LMSETBAUDRATE,LINE1);
displaymessage(tblbaud[readbaudrate()],LINE2);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -