📄 menu.c.bak
字号:
//menu.c
#ifdef __C51__
#include "..\uv2_prj\config.h"
#else
#include "..\ads_prj\config"
#endif
#include "..\c1335_public\c1335_driver.h"
#define MAIN_MENU_ROW_WIDTH (unsigned char)18
extern unsigned char KeyScan(void);
unsigned char* code MainMenuString[8]=
{
"1.LEAK CHECK",
"2.HANG-UP TEST",
"3.VEHICLE MESSAGE",
"4.MESSURE",
"5.FUNCTION",
"6.HELP",
"7.DIAGNOSE",
"8.SETTING"
};
unsigned char* code LanguageMenuString[2]=
{
"1.CHINESE",
"2.ENGLISH"
};
unsigned char* code MeasureMenuString[3]=
{
"1.COMMON MEAS.",
"2.IDLE MEAS.",
"3.DUAL MEAS.",
};
unsigned char g_ucKeyData;
BOOL SleepAndQueryMsg(unsigned char nDelayTime)
{
// unsigned char uc;
while(nDelayTime--)
{
g_ucKeyData = KeyScan();
if(g_ucKeyData)
return FALSE;
DelayMS(1);
}
return TRUE;
}
//// Action of 5Gas ///////////
BOOL LeakCheck()
{
/*********************************
//1.开泵,
//2.延时 15 s。
//3.读取气路压力 Pressure0,并记录
//4.延时 5 s
//5.读取气路压力 Pressure1,判断|Pressure0-Pressure1|
//6.给出结果
*********************************/
SleepAndQueryMsg(2000);
return TRUE;
}
//// End of action ///////////
void KeyNote()
{
unsigned char i;
for (i=0;i<6;i++)
{
DrawRect(7*i, 216,1);
}
for (i=0;i<6;i++)
{
DispBmp16x24(&KEY_NOTE[48*i], 1+7*i, 220,0);
}
/* DrawRect(7*0, 216,1); DrawRect(7*1, 216,1); DrawRect(7*2, 216,1);
DrawRect(7*3, 216,1); DrawRect(7*4, 216,1); DrawRect(7*5, 216,1);
DispBmp16x24(&KEY_NOTE[48*0], 1+7*0, 220,0); DispBmp16x24(&KEY_NOTE[48*1], 1+7*1, 220,0);
DispBmp16x24(&KEY_NOTE[48*2], 1+7*2, 220,0); DispBmp16x24(&KEY_NOTE[48*3], 1+7*3, 220,0);
DispBmp16x24(&KEY_NOTE[48*4], 1+7*4, 220,0); DispBmp16x24(&KEY_NOTE[48*5], 1+7*5, 220,0);
*/
}
void DispSubMenuNum(unsigned char Number,
unsigned char MaxNum,
unsigned char X,
unsigned char Y,
unsigned char RowWidth)
{
unsigned char i,color;
Y -= RowWidth;
for(i=1;i<=MaxNum;i++)
{
if(i == Number) color = 1;
else color = 0;
DispCHAR_16x8(&ASCII_16[(16+i)*16], X,Y+RowWidth*i,color);
}
}
void DispSubMenuContent( unsigned char* str[],
unsigned char MaxNum,
unsigned char X,
unsigned char Y,
unsigned char RowWidth)
{
unsigned char i;
for(i=0;i<MaxNum;i++)
DispASCIIStr(str[i],X, Y+RowWidth*i, 0);
}
void MainMenu(unsigned char *pSubMenu)
{
ClearLCD(0x28,2, 10,36,200);
DispASCIIStr("MENU",14,10,0);
/* for(g_ucKeyData=0;g_ucKeyData<10;g_ucKeyData++)
DispASCIIStr(MainMenuString[g_ucKeyData],
6, 28+MAIN_MENU_ROW_WIDTH*g_ucKeyData, 0);*/
DispSubMenuContent(MainMenuString,8,6,28,18);
DispSubMenuNum(*pSubMenu,8,6,28,18);
KeyNote();
while(1)
{
g_ucKeyData = 0;
//KeyScan();
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_UP:
if(*pSubMenu == 1)
*pSubMenu = 8;
else
(*pSubMenu)--;
DispSubMenuNum(*pSubMenu,10,6,28,18);
break;
case KEY_DOWN:
if(*pSubMenu == 8)
*pSubMenu = 1;
else
(*pSubMenu)++;
DispSubMenuNum(*pSubMenu,10,6,28,18);
break;
case KEY_OK:
return;
}
}
}
}
void LeakCheckMenu(void)
{
ClearLCD(0x28,6, 10,20,200);
DispASCIIStr("LEAK CHECK",14,10,0);
VerLine(0x80, 11, 72, 32);
VerLine(0x80, 20, 80, 16);
VerLine(0x80, 22, 72, 32);
HorLine(0xff, 11, 72, 4);
HorLine(0xff, 11, 104, 4);
HorLine(0xff, 20, 80, 2);
HorLine(0xff, 20, 96, 2);
HorLine(0xff, 22, 72, 5);
HorLine(0xff, 22, 104, 5);
DispASCIIStr("START LEAK CHECK?",12,160,0);
//while(KeyScan() == 0);
while(1)
{
g_ucKeyData = 0;
//KeyScan();
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_OK://Start Leak Check
//DispASCIIStr("START LEAK CHECK?",12,128,0);
DispASCIIStr( " CHECKING... ", 12,160,0);
if(LeakCheck())
DispASCIIStr(" PASS ", 14,160,0);
else
DispASCIIStr( "FAIL", 16,160,0);
break;
case KEY_ESCAPE:
return;
}
}
}
}
//void HangUpMenu(void);
//void InputVehicleMsgMenu(void);
void MeasureMenu(void)
{
}
//void CalibrationMenu(void);
//void HelpMenu(void);
//void DiagnoseMenu(void);
//void ComSettingMenu(void);
//void TimeSettingMenu(void);
void LanguageMenu(void)
{
unsigned char ucSubMenu = 0;
ClearLCD(0x28,6, 10,20,200);
DispASCIIStr("LANGUAGE",14,10,0);
// DispASCIIStr("0.CHINESE",14,64,0);
// DispASCIIStr("1.ENGLISH",14,96,0);
DispSubMenuContent(LanguageMenuString,2, 14,64, 32);
DispSubMenuNum(ucSubMenu,2,14,64,32);
while(1)
{
g_ucKeyData = 0;
//KeyScan();
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_ESCAPE:
return;
case KEY_UP:
if(ucSubMenu == 1)
ucSubMenu = 2;
else
ucSubMenu = 1;
DispSubMenuNum(ucSubMenu,2,14,64,32);
break;
case KEY_DOWN:
if(ucSubMenu == 2)
ucSubMenu = 1;
else
ucSubMenu = 2;
DispSubMenuNum(ucSubMenu,2,14,64,32);
break;
case KEY_OK:
if(ucSubMenu == 1)
DispASCIIStr("1.CHINESE",14,64,1);
else
DispASCIIStr("2.ENGLISH",14,96,1);
//保存设置,例如写到EEPROM
break;
}
}
}
}
/*
void Menu(void)
{
DispASCIIStr("I LOVE YOU",10,4,0);
while(KeyScan() == 0);
DispCHAR_16x8(&ASCII_16[32*1], 20*1, 20,0);
while(KeyScan() == 0);
while(KeyScan() == 0);
}
void MainMenu(unsigned char *pSubMenu)
{
ClearLCD(0x28,2, 10,36,200);
DispASCIIStr("MENU",14,10,0);
DispASCIIStr("0.LEAK CHECK", 6, 10+MAIN_MENU_ROW_WIDTH*1, 0);
DispASCIIStr("1.HANG-UP TEST", 6, 10+MAIN_MENU_ROW_WIDTH*2, 0);
DispASCIIStr("2.VEHICLE MESSAGE", 6, 10+MAIN_MENU_ROW_WIDTH*3, 0);
DispASCIIStr("3.MESSURE", 6, 10+MAIN_MENU_ROW_WIDTH*4, 0);
DispASCIIStr("4.CALIBRATE", 6, 10+MAIN_MENU_ROW_WIDTH*5, 0);
DispASCIIStr("5.HELP", 6, 10+MAIN_MENU_ROW_WIDTH*6, 0);
DispASCIIStr("6.DIAGNOSE", 6, 10+MAIN_MENU_ROW_WIDTH*7, 0);
DispASCIIStr("7.COM SETTING", 6, 10+MAIN_MENU_ROW_WIDTH*8, 0);
DispASCIIStr("8.TIME SETTING", 6, 10+MAIN_MENU_ROW_WIDTH*9, 0);
DispASCIIStr("9.LANGUAGE", 6, 10+MAIN_MENU_ROW_WIDTH*10, 0);
}
void DispSubMenuNum(unsigned char Number){
unsigned char i,color;
for(i=0;i<10;i++)
{
if(i == Number) color = 1;
else color = 0;
DispCHAR_16x8(&ASCII_16[(16+i)*16], 6,28+MAIN_MENU_ROW_WIDTH*i,color);
}
DispCHAR_16x8(&ASCII_16[(16+1)*16], 6,10+20*1,0);
DispCHAR_16x8(&ASCII_16[(16+2)*16], 6,10+20*2,0);
DispCHAR_16x8(&ASCII_16[(16+3)*16], 6,10+20*3,0);
DispCHAR_16x8(&ASCII_16[(16+4)*16], 6,10+20*4,0);
DispCHAR_16x8(&ASCII_16[(16+5)*16], 6,10+20*5,0);
DispCHAR_16x8(&ASCII_16[(16+6)*16], 6,10+20*6,0);
DispCHAR_16x8(&ASCII_16[(16+7)*16], 6,10+20*7,0);
DispCHAR_16x8(&ASCII_16[(16+8)*16], 6,10+20*8,0);
DispCHAR_16x8(&ASCII_16[(16+9)*16], 6,10+20*9,0);
// DispCHAR_16x8(&ASCII_16[(16+Number)*16],6,(unsigned char)(26+MAIN_MENU_ROW_WIDTH*Number),1);
void KeyNote()
{
DrawRect(7*0, 216,1); DrawRect(7*1, 216,1); DrawRect(7*2, 216,1);
DrawRect(7*3, 216,1); DrawRect(7*4, 216,1); DrawRect(7*5, 216,1);
DispBmp16x24(&KEY_NOTE[48*0], 1+7*0, 220,0);
DispBmp16x24(&KEY_NOTE[48*1], 1+7*1, 220,0);
DispBmp16x24(&KEY_NOTE[48*2], 1+7*2, 220,0);
DispBmp16x24(&KEY_NOTE[48*3], 1+7*3, 220,0);
DispBmp16x24(&KEY_NOTE[48*4], 1+7*4, 220,0);
DispBmp16x24(&KEY_NOTE[48*5], 1+7*5, 220,0);
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -