?? setup.c
字號:
setcount=readpinkeyin();
setkeyindisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setmodedisp();
else if(keynumber==NUMBER4)settscleardisp();
}
else
{
if(keynumber==ENTER)
{
ram_writep0(PINKEYIN,setcount);
submenuflag=0;
setkeyindisp();
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setkeyindisp();
}
else if(keynumber==NUMBER6)
{
setcount++;
if(setcount>=MAXKEYINSEL)setcount=0;
setkeyindisp();
}
else if(keynumber==NUMBER4)
{
setcount--;
if(setcount>=MAXKEYINSEL)setcount=MAXKEYINSEL-1;
setkeyindisp();
}
}
}
}
//////////////////////////////////////////////////////////////////////////////
unsigned char code tbltsday[][3]=
{
{"HOL"},
{"SUN"},
{"MON"},
{"TUE"},
{"WED"},
{"THU"},
{"FRI"},
{"SAT"}
};
//////////////////////////////////////////////////////////////////////////////
void displayts(unsigned char tsgroup,unsigned char tsindex)
{
displaymessage(LMSETTSDETAIL1,LINE1);
displayshort(tsgroup+1,2,5);
dispbuff[0][10]=tbltsday[tsindex/5][0];
dispbuff[0][11]=tbltsday[tsindex/5][1];
dispbuff[0][12]=tbltsday[tsindex/5][2];
dispbuff[0][15]=tsindex%5+0x30;
display(LINE1);
gettsdata(tsgroup*40+tsindex);
displaymessage(LMSETTSDETAIL2,LINE2);
dispbuff[1][1]=tempbuff[0]/10+0x30;
dispbuff[1][2]=tempbuff[0]%10+0x30;
dispbuff[1][4]=tempbuff[1]/10+0x30;
dispbuff[1][5]=tempbuff[1]%10+0x30;
dispbuff[1][9]=tempbuff[2]/10+0x30;
dispbuff[1][10]=tempbuff[2]%10+0x30;
dispbuff[1][12]=tempbuff[3]/10+0x30;
dispbuff[1][13]=tempbuff[3]%10+0x30;
display(LINE2);
}
//////////////////////////////////////////////////////////////////////////////
void settsdisp()
{
if(!submenuflag)
{
setupitem=SETTS;
displaymessage(LMTIMESCHEDULE,LINE1);
displaymessage(LMBLANK,LINE2);
}
else
{
if(!submenu1flag)
{
displayts(setcount16/40,setcount16%40);
}
else
{
display(LINE2);
}
}
}
//////////////////////////////////////////////////////////////////////////////
unsigned char code tblsettsposi[]={1,2,4,5,9,10,12,13};
//////////////////////////////////////////////////////////////////////////////
void setts()
{
if(keynumber==0xff)settsdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
clearsetup();
submenuflag=1;
settsdisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setholdefdisp();
else if(keynumber==NUMBER4)setmodeindexdisp();
}
else
{
if(!submenu1flag)
{
if(keynumber==ENTER)
{
submenu1flag=1;
subsetcount=0;
//here blink the cursor
lcdcuron(tblsettsposi[subsetcount],LINE2);
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
settsdisp();
}
else if(keynumber==2)
{
setcount16-=5;
if(setcount16>=MAXTSINDEX)setcount16+=MAXTSINDEX;
settsdisp();
}
else if(keynumber==8)
{
setcount16+=5;
if(setcount16>=MAXTSINDEX)setcount16=setcount16-MAXTSINDEX;
settsdisp();
}
else if(keynumber==4)
{
setcount16--;
if(setcount16>=MAXTSINDEX)setcount16=MAXTSINDEX-1;
settsdisp();
}
else if(keynumber==6)
{
setcount16++;
if(setcount16>=MAXTSINDEX)setcount16=0;
settsdisp();
}
else if(keynumber==7)
{
setcount16-=40;
if(setcount16>=MAXTSINDEX)setcount16=setcount16+MAXTSINDEX;
settsdisp();
}
else if(keynumber==9)
{
setcount16+=40;
if(setcount16>=MAXTSINDEX)setcount16-=MAXTSINDEX;
settsdisp();
}
}
else
{
if(keynumber==ENTER)
{
//do nothing
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
settsdisp();
}
else
{
dispbuff[LINE2][tblsettsposi[subsetcount]]=keynumber+0x30;
display(LINE2);
subsetcount++;
lcdcuron(tblsettsposi[subsetcount],LINE2);
if(subsetcount>=8)
{
//here save the ts data
checksavets(setcount16);
submenuflag=1;
submenu1flag=0;
settsdisp();
}
}
}
}
}
}
//////////////////////////////////////////////////////////////
unsigned char code tblsetholposi[]={1,2,4,5};
/////////////////////////////////////////////////////////////////////////
bit getholdata(unsigned short holindex)
{
//unsigned char page;
unsigned short startadd;
if(holindex>=320)return FALSE;
//page=holindex/128+PAGEHOLSTART;
//startadd=holindex%128*2;
startadd=holindex*2+PAGEHOLSTART*256;
tempbuff[0]=ram_read(startadd,0);
if((tempbuff[0]>12))
{
tempbuff[0]=0;
ram_write(startadd,0,0);
}
tempbuff[1]=ram_read(startadd+1,0);
if((tempbuff[1]>31))
{
tempbuff[1]=0;
ram_write(startadd,0,0);
}
}
/////////////////////////////////////////////////////////////////////////
void checksavehol(unsigned short holindex)
{
//unsigned char page;
unsigned short startadd;
if(holindex>=320)return;
//page=holindex/128+PAGEHOLSTART;
//startadd=holindex%128*2;
startadd=holindex*2+PAGEHOLSTART*256;
tempbuff[0]=(dispbuff[LINE2][tblsetholposi[0]]-0x30)*10+dispbuff[LINE2][tblsetholposi[1]]-0x30;
if(tempbuff[0]>12)return;
tempbuff[1]=(dispbuff[LINE2][tblsetholposi[2]]-0x30)*10+dispbuff[LINE2][tblsetholposi[3]]-0x30;
if(tempbuff[0]>31)return;
ram_write(startadd,0,tempbuff[0]);
ram_write(startadd+1,0,tempbuff[1]);
}
/////////////////////////////////////////////////////////////////////////
void displayhol(unsigned char holgroup,unsigned char holindex)
{
displaymessage(LMSETHOLDETAIL1,LINE1);
displayshort(holgroup+1,2,6);
displayshort(holindex,2,11);
display(LINE1);
getholdata(holgroup*32+holindex);
dispbuff[1][1]=tempbuff[0]/10+0x30;
dispbuff[1][2]=tempbuff[0]%10+0x30;
dispbuff[1][3]='-';
dispbuff[1][4]=tempbuff[1]/10+0x30;
dispbuff[1][5]=tempbuff[1]%10+0x30;
display(LINE2);
}
//////////////////////////////////////////////////////////////
void setholdefdisp()
{
if(!submenuflag)
{
setupitem=SETHOLDEF;
displaymessage(LMSETHOLDEF,LINE1);
displaymessage(LMBLANK,LINE2);
}
else
{
if(!submenu1flag)
{
displayhol(setcount16/32,setcount16%32);
}
else
{
display(LINE2);
}
}
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void setholdef()
{
if(keynumber==0xff)setholdefdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount16=0;
subsetcount=0;
setholdefdisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)setiodefdisp();
else if(keynumber==NUMBER4)settsdisp();
}
else
{
if(!submenu1flag)
{
if(keynumber==ENTER)
{
submenu1flag=1;
subsetcount=0;
//here blink the cursor
lcdcuron(tblsetholposi[subsetcount],LINE2);
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setholdefdisp();
}
else if(keynumber==2)
{
setcount16-=32;
if(setcount16>=MAXHOLINDEX)setcount16+=MAXHOLINDEX;
setholdefdisp();
}
else if(keynumber==8)
{
setcount16+=32;
if(setcount16>=MAXHOLINDEX)setcount16=setcount16-MAXHOLINDEX;
setholdefdisp();
}
else if(keynumber==4)
{
setcount16--;
if(setcount16>=MAXHOLINDEX)setcount16=MAXHOLINDEX-1;
setholdefdisp();
}
else if(keynumber==6)
{
setcount16++;
if(setcount16>=MAXHOLINDEX)setcount16=0;
setholdefdisp();
}
}
else
{
if(keynumber==ENTER)
{
//do nothing
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setholdefdisp();
}
else
{
dispbuff[LINE2][tblsetholposi[subsetcount]]=keynumber+0x30;
display(LINE2);
subsetcount++;
lcdcuron(tblsetholposi[subsetcount],LINE2);
if(subsetcount>=4)
{
//here save the holdef data
checksavehol(setcount16);
submenuflag=1;
submenu1flag=0;
setholdefdisp();
}
}
}
}
}
}
////////////////////////////////////////////////////////////////////
unsigned char code tblsetioposi[]={1,2,4,5,7,8,10,11,13,14};
////////////////////////////////////////////////////////////////////
unsigned char code tbliodisp[16]=
{
LMEXITBUTTON,LMDOORCONTACT,LMAUX1,LMAUX2,LMTAMPER,LMR1IDOK,LMR1IDERROR,LMR1TSERROR,
LMR1APBERROR,LMR2IDOK,LMR2IDERROR,LMR2TSERROR,LMR2APBERROR,LMDURESSMODE,LMOUTPUTTS,LMINOUTTS
};
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
void displayio(unsigned char ioindex)
{
unsigned char i;
displaymessage(tbliodisp[setcount],LINE1);
getiodata(ioindex);
for(i=0;i<5;i++)
{
dispbuff[LINE2][tblsetioposi[2*i]]=tempbuff[i]/10+0x30;
dispbuff[LINE2][tblsetioposi[2*i+1]]=tempbuff[i]%10+0x30;
}
display(LINE2);
}
//////////////////////////////////////////////////////////////
void setiodefdisp()
{
if(!submenuflag)
{
setupitem=SETIODEF;
displaymessage(LMSETIODEF,LINE1);
displaymessage(LMBLANK,LINE2);
}
else
{
if(!submenu1flag)
{
displayio(setcount);
}
else
{
display(LINE2);
}
}
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
void setiodef()
{
if(keynumber==0xff)setiodefdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=0;
setiodefdisp();
}
else if(keynumber==CANCEL)terminatesetup();
else if(keynumber==NUMBER6)settsholindexdisp();
else if(keynumber==NUMBER4)setholdefdisp();
}
else
{
if(!submenu1flag)
{
if(keynumber==ENTER)
{
submenu1flag=1;
subsetcount=0;
//here blink the cursor
lcdcuron(tblsetioposi[subsetcount],LINE2);
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setiodefdisp();
}
else if(keynumber==4)
{
setcount--;
if(setcount>=MAXIOINDEX)setcount=MAXIOINDEX-1;
setiodefdisp();
}
else if(keynumber==6)
{
setcount++;
if(setcount>=MAXIOINDEX)setcount=0;
setiodefdisp();
}
}
else
{
if(keynumber==ENTER)
{
//do nothing
}
else if(keynumber==CANCEL)
{
//submenuflag=0;
clearsetup();
setiodefdisp();
}
else
{
dispbuff[1][tblsetioposi[subsetcount]]=keynumber+0x30;
display(LINE2);
subsetcount++;
lcdcuron(tblsetioposi[subsetcount],LINE2);
if(subsetcount>=10)
{
//here save the iodef data
checksaveio(setcount);
submenuflag=1;
submenu1flag=0;
setiodefdisp();
}
}
}
}
}
}
////////////////////////////////////////////////////////////////////
bit gettsholindex(unsigned char tsindex)
{
//unsigned char tempdata;
if(tsindex>9)return FALSE;
tempbuff[0]=ram_readp0(TSHOLINDEXSTART+tsindex);
if(tempbuff[0]>=MAXTSHOLINDEX)
{
ram_writep0(TSHOLINDEXSTART+tsindex,0);
tempbuff[0]=0;
}
return TRUE;
}
////////////////////////////////////////////////////////////////////
void checksavetsholindex(unsigned char tsindex)
{
unsigned char tempdata;
if(tsindex>9)return;
tempdata=(dispbuff[LINE2][TSHOLINDEXP]-0X30)*10+dispbuff[LINE2][TSHOLINDEXP+1]-0X30;
if(tempdata>9)return;
ram_writep0(TSHOLINDEXSTART+tsindex,tempdata);
}
////////////////////////////////////////////////////////////////////
void displaytshol(unsigned char tsindex)
{
displaymessage(LMTSINDEX,LINE1);
displaymessage(LMSETHOLINDEX,LINE2);
displayshort(tsindex+1,2,TSHOLINDEXP);
if(!gettsholindex(tsindex))return;
displayshort(tempbuff[0],2,TSHOLINDEXP+16);
}
////////////////////////////////////////////////////////////////////
void settsholindexdisp()
{
if(!submenuflag)
{
setupitem=SETHOLINDEX;
displaymessage(LMHOLIDAYINDEX,LINE1);
//displayshort(ram_read(HOLINDEX,0),2,25);
displaymessage(LMBLANK,LINE2);
}
else
{
if(!submenu1flag)
{
//displayhol(setcount16/32,setcount16%32);
displaytshol(setcount);
}
else
{
display(LINE2);
}
}
}
//////////////////////////////////////////////////////////
unsigned char code tbltsholindexposi[]={TSHOLINDEXP,TSHOLINDEXP+1};
//////////////////////////////////////////////////////////
void setholindex()
{
if(keynumber==0xff)settsholindexdisp();
else
{
if(!submenuflag)
{
if(keynumber==ENTER)
{
submenuflag=1;
setcount=0;
settsholindexdisp();
}
else if(keynumber==CANCEL)terminatesetup();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -